# cvs should be submitted for inclusion in samba cvs.
%define pkg_name samba
-%define ver 3.0alpha22
-%define rel 2mdk
-%define vscanver 0.3.1
+%define ver 3.0alpha23
+%define rel 4mdk
+%define vscanver 0.3.2a
%define libsmbmajor 0
-# Determine whether this is the system samba or not.
-%define build_system 0
-%if %build_system
-%define samba_major %{null}
-%else
-%define samba_major 3
-%endif
-
# Version and release replaced by samba-team at release from samba cvs
%define pversion PVERSION
%define prelease PRELEASE
# We now do detection of the Mandrake release we are building on:
#%define build_cooker %(if [ `awk '{print $3}' /etc/mandrake-release` = "Cooker" ];then echo 1; else echo 0; fi)
#%define build_cooker %(if [[ `cat /etc/mandrake-release|grep Cooker` ]];then echo 1; else echo 0; fi)
+%define build_mdk92 %(if [ `awk '{print $4}' /etc/mandrake-release` = 9.2 ];then echo 1; else echo 0; fi)
%define build_mdk91 %(if [ `awk '{print $4}' /etc/mandrake-release` = 9.1 ];then echo 1; else echo 0; fi)
%define build_mdk90 %(if [ `awk '{print $4}' /etc/mandrake-release` = 9.0 ];then echo 1; else echo 0; fi)
%define build_mdk82 %(if [ `awk '{print $4}' /etc/mandrake-release` = 8.2 ];then echo 1; else echo 0; fi)
%define build_non_default 0
# Default options
+%define build_system 0
%define build_acl 1
%define build_winbind 1
%define build_wins 1
%define build_cupspc 0
# Set defaults for each version
+%if %build_mdk92
+%define build_cupspc 1
+%endif
+
%if %build_mdk91
%define build_cupspc 1
%endif
%define build_wins 0
%endif
+
# Allow commandline option overrides (borrowed from Vince's qmail srpm):
# To use it, do rpm [-ba|--rebuild] --with 'xxx'
# Check if the rpm was built with the defaults, otherwise we inform the user
%define build_non_default 0
-%{?_with_acl: %{expand: %%define build_acl 1}}
+%{?_with_system: %{expand: %%define build_system 1}}
+%{?_without_system: %{expand: %%define build_system 0}}
+%{?_with_acl: %{expand: %%global build_acl 1}}
%{?_with_acl: %{expand: %%define build_non_default 1}}
-%{?_without_acl: %{expand: %%define build_acl 0}}
+%{?_without_acl: %{expand: %%global build_acl 0}}
%{?_without_acl: %{expand: %%define build_non_default 1}}
%{?_with_winbind: %{expand: %%global build_winbind 1}}
%{?_with_winbind: %{expand: %%define build_non_default 1}}
-%{?_without_winbind: %{expand: %%define build_winbind 0}}
+%{?_without_winbind: %{expand: %%global build_winbind 0}}
%{?_without_winbind: %{expand: %%define build_non_default 1}}
%{?_with_wins: %{expand: %%global build_wins 1}}
%{?_with_wins: %{expand: %%define build_non_default 1}}
%{?_with_ldap: %{expand: %%define build_non_default 1}}
%{?_without_ldap: %{expand: %%global build_ldap 0}}
%{?_without_ldap: %{expand: %%define build_non_default 1}}
-%{?_with_ads: %{expand: %%define build_ads 1}}
+%{?_with_ads: %{expand: %%global build_ads 1}}
%{?_with_ads: %{expand: %%define build_non_default 1}}
-%{?_without_ads: %{expand: %%define build_ads 0}}
+%{?_without_ads: %{expand: %%global build_ads 0}}
%{?_without_ads: %{expand: %%define build_non_default 1}}
-%{?_with_scanners: %{expand: %%define build_scanners 1}}
+%{?_with_scanners: %{expand: %%global build_scanners 1}}
%{?_with_scanners: %{expand: %%define build_non_default 1}}
# As if that weren't enough, we're going to try building with antivirus
%endif
%global vfsdir examples.bin/VFS
+#Standard texts for descriptions:
+%define message_bugzilla() %(echo -e -n "Please file bug reports for this package at Mandrake bugzilla \\n(http://qa.mandrakesoft.com) under the product name %{1}")
+%define message_system %(echo -e -n "NOTE: This is a prerelease of samba-%{samba_major}, not intended for production\\n use. Rather these packages are provided, parallel installable\\nwith samba-2.2.x, for testing purposes")
+
+
#Workaround missing macros in 8.x:
%{!?perl_vendorlib: %{expand: %%global perl_vendorlib %{perl_sitearch}/../}}
+# Determine whether this is the system samba or not.
+%if %build_system
+%define samba_major %{nil}
+%else
+%define samba_major 3
+%endif
+
Summary: Samba SMB server.
Name: %{pkg_name}%{samba_major}
%if !%have_pversion
# Version specific patches: current version
Patch101: samba-Makefile-3.0alpha21.patch.bz2
-Patch102: samba-3.0alpha22-mandrake-packaging.patch.bz2
+#Patch102: samba-3.0alpha22-mandrake-packaging.patch.bz2
Patch110: samba-2.2.7a-fix-build.patch.bz2
%else
# Version specific patches: upcoming version
BuildRequires: pam-devel autoconf readline-devel
BuildRequires: libxml2-devel
BuildRequires: mysql-devel
+BuildRequires: autoconf2.5
%if %build_acl
BuildRequires: libacl-devel
%endif
Please read the smb.conf file and ENCRYPTION.txt in the
docs directory for implementation details.
-
+%if %have_pversion
+%message_bugzilla samba3
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
-
%if %build_non_default
WARNING: This RPM was built with command-line options. Please
see README.%{name}-mandrake-rpm in the documentation for
%if %build_system
Provides: samba
Obsoletes: samba
+Provides: samba-server-ldap
Obsoletes: samba-server-ldap
+Provides: samba3-server
Obsoletes: samba3-server
%else
#Provides: samba-server
Please read the smb.conf file and ENCRYPTION.txt in the
docs directory for implementation details.
-
-%if %build_ldap
-This package was compiled with LDAP support, which means that
-passwords can be stored in LDAP or in smbpasswd files.
-To migrate your passwords from smbpasswd into LDAP, try
-examples/LDAP/import_smbpasswd.pl using:
-%{_datadir}/%{name}/scripts/import_smbpasswd.pl </etc/%{name}/smbpasswd
-
-Scripts for managing users in LDAP have been added to
-%{_datadir}/%{name}/scripts, configuration is in /etc/%{name}/smbldap_conf.pm
+%if %have_pversion
+%message_bugzilla samba3-server
%endif
-
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%package client
Group: Networking/Other
Requires: %{name}-common = %{version}
%if %build_system
+Provides: samba3-client
Obsoletes: samba3-client
Obsoletes: smbfs
%else
Samba-client provides some SMB clients, which complement the built-in
SMB filesystem in Linux. These allow the accessing of SMB shares, and
printing to SMB printers.
-
+%if %have_pversion
+%message_bugzilla samba3-client
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%package common
Summary: Files used by both Samba servers and clients.
Group: System/Servers
%if %build_system
+Provides: samba-common-ldap
Obsoletes: samba-common-ldap
+Provides: samba3-common
Obsoletes: samba3-common
%else
#Provides: samba-common
%description common
Samba-common provides files necessary for both the server and client
packages of Samba.
-
+%if %have_pversion
+%message_bugzilla samba3-common
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%package doc
Requires: %{name}-common = %{version}
%if %build_system
Obsoletes: samba3-doc
+Provides: samba3-doc
%else
#Provides: samba-doc
%endif
%description doc
Samba-doc provides documentation files for both the server and client
packages of Samba.
-
+%if %have_pversion
+%message_bugzilla samba3-doc
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%package swat
Requires: xinetd
Group: System/Servers
%if %build_system
+Provides: samba-swat-ldap
Obsoletes: samba-swat-ldap
+Provides: samba3-swat
Obsoletes: samba3-swat
%else
#Provides: samba-swat
preserves comments in configuration files, even if it does not display
them, and is therefore the preferred method for remotely managing
Samba.
-
+%if %have_pversion
+%message_bugzilla samba3-swat
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%if %build_winbind
Provides the winbind daemon and testing tools to allow authentication
and group/user enumeration from a Windows or Samba domain controller.
%endif
-
+%if %have_pversion
+%message_bugzilla samba3-winbind
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%if %build_wins
Provides the libnss_wins shared library which resolves NetBIOS names to
IP addresses.
%endif
-
+%if %have_pversion
+%message_bugzilla nss_wins3
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
+%if %{?_without_debug:0}%{!?_without_debug:1}
%package debug
URL: http://www.samba.org
Summary: Debugging and benchmarking tools for samba
Group: System/Servers
Requires: %{name}-common = %{version}
-%if %build_system
+%endif
+%if %build_system && %{?_without_debug:0}%{!?_without_debug:1}
+Provides: samba3-debug
Obsoletes: samba3-debug
%else
Provides: samba-debug
%endif
+%if %{?_without_debug:0}%{!?_without_debug:1}
%description debug
This package provides tools for benchmarking samba, and debugging
the correct operation of tools against smb servers.
+%endif
%if %build_system
%package -n libsmbclient%{libsmbmajor}
This package contains the SMB client library, part of the samba
suite of networking software, allowing other software to access
SMB shares.
-
%endif
-%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%if %have_pversion && %build_system
+%message_bugzilla libsmbclient%{libsmbmajor}
%endif
%if %build_system
Provides: libsmbclient-devel
%description -n libsmbclient%{libsmbmajor}-devel
-This package contains the development files for the SMB client
-library, part of the samba suite of networking software, allowing
+This package contains the development files for the SMB client
+library, part of the samba suite of networking software, allowing
the development of other software to access SMB shares.
-
%endif
-%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%if %have_pversion && %build_system
+%message_bugzilla libsmbclient%{libsmbmajor}-devel
%endif
%package passdb-mysql
The passdb-mysql package for samba provides a password database
backend allowing samba to store account details in a MySQL
database
-
+%if %have_pversion
+%message_bugzilla samba3-passdb-mysql
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
%package passdb-xml
%description passdb-xml
The passdb-xml package for samba provides a password database
backend allowing samba to store account details in XML files.
-
+%if %have_pversion
+%message_bugzilla samba3-passdb-xml
+%endif
%if !%build_system
-NOTE: This is a prerelease of samba-%{samba_major}, not intended
-for production use. If something breaks, file a bug report.
+%message_system
%endif
#Antivirus packages:
%endif
%prep
+
+# Allow users to query build options with --with options:
+#%define opt_status(%1) %(echo %{1})
+#%( [ -d %{1} ]||mkdir -p %{1}; [ -w %{1} ] && echo %{1})
+%if %{?_with_options:1}%{!?_with_options:0}
+%define opt_status(%{1}) %(if [ %{1} -eq 1 ];then echo enabled;else echo disabled;fi)
+#exit 1
+%{error: }
+%{error:Build options available are:}
+%{error:--with[out] system Build as the system samba package [or as samba3]}
+%{error:--with[out] acl Build with support for file ACLs - %opt_status %build_acl}
+%{error:--with[out] winbind Build with Winbind support - %opt_status %build_winbind}
+%{error:--with[out] wins Build with WINS name resolution support - %opt_status %build_wins}
+%{error:--with[out] ldap Build with legacy (samba2) LDAP support - %opt_status %build_ldap}
+%{error:--with[out] ads Build with Active Directory support - %opt_status %build_ads}
+%{error:--with[out] scanners Enable on-access virus scanners - %opt_status %build_scanners}
+%{error: }
+%else
+%{error: }
+%{error: This rpm has build options available, use --with options to see them}
+%{error: }
+%endif
+
+%if %{?_with_options:1}%{!?_with_options:0} && %build_scanners
+%{error:--with scanners enables fprot,mks,openav,sophos and trend by default}
+%{error: }
+%{error:To enable others (requires development libraries for the scanner):}
+%{error:--with kaspersky Enable on-access scanning with Kaspersky - %opt_status %build_kaspersky}
+%{error: }
+%endif
+
+%if %{?_with_options:1}%{!?_with_options:0}
+clear
+exit 1
+%endif
+
+
# Build a summary of how this RPM was built:
%if %build_acl
RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with acl"
RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with ldap"
%else
RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --without ldap"
-%endif
+%endif
%if %build_ads
RPM_EXTRA_OPTIONS="$RPM_EXTRA_OPTIONS --with ads"
%else
echo "an identical rpm, you need to supply the following options">>%{SOURCE7}
echo "at build time: $RPM_EXTRA_OPTIONS">>%{SOURCE7}
echo -e "\n%{name}-%{version}-%{release}\n">>%{SOURCE7}
-%else
+%else
echo "This rpm was built with default options">%{SOURCE7}
echo -e "\n%{name}-%{version}-%{release}\n">>%{SOURCE7}
%endif
(cd source
%patch101
)
-%patch102 -p1 -b .mdk
+#%patch102 -p1 -b .mdk
%patch110 -p1
%else
# Version specific patches: upcoming version
%endif
# Fix quota compilation in glibc>2.3
-%if %build_mdk91
+%if %build_mdk91 || %build_mdk92
#grep "<linux/quota.h>" source/smbd/quotas.c >/dev/null && \
perl -pi -e 's@<linux/quota.h>@<sys/quota.h>@' source/smbd/quotas.c
%endif
%endif
--disable-mysqltest \
--program-suffix=%{samba_major}
-# --with-pam_smbpass \
# --with-manpages-langs=en,ja,pl \
-# --with-ldap=no \
#%if !%build_system
# --with-smbwrapper \
#%endif
# For some reason passdb/pdb_xml.c doesn't like the flags below ...
# and the samba team doesn't always make proto before release ...
make proto_exists
-make passdb/pdb_xml.o torture
+#make passdb/pdb_xml.o torture
# torture target broken in alpha22 (only on 9.0?)
-make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \
- all libsmbclient debug2html smbfilter wins modules
-# all libsmbclient debug2html smbfilter wins torture modules
+#make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" \
+# all libsmbclient smbfilter wins modules %{!?_without_debug: torture debug2html}
+%make all libsmbclient smbfilter wins modules %{!?_without_debug: torture debug2html}
+#%make all libsmbclient debug2html smbfilter wins torture modules
# Build VFS modules (experimental)
#cd ../%vfsdir
#_configure --prefix=%{prefix} \
%endif
%if %build_kaspersky
echo "Building Kaspersky"
-(cd %{vfsdir}/%{vscandir}/kaspersky;make)
+(cd %{vfsdir}/%{vscandir}/kavp
+ perl -p -i -e "s|/usr/local/|/usr/|g" Makefile.KAV4
+ make -f Makefile.KAV4
+)
%endif
%if %build_mks
echo "Building mks"
# Make link for wins and winbind resolvers
( cd $RPM_BUILD_ROOT/%{_lib}; ln -s libnss_wins%{samba_major}.so libnss_wins%{samba_major}.so.2; ln -s libnss_winbind%{samba_major}.so libnss_winbind%{samba_major}.so.2)
-%if 1
+%if %{?_without_debug:0}%{!?_without_debug:1}
# Debugging stuff (broken in alpha22)
for i in smbtorture msgtest masktest locktest locktest2 nsstest vfstest debug2html;do
install -m755 source/bin/$i $RPM_BUILD_ROOT/%{_bindir}
%{_bindir}/pdbedit%{samba_major}
%{_bindir}/tdbbackup%{samba_major}
%{_bindir}/profiles%{samba_major}
+%{_bindir}/editreg%{samba_major}
%attr(755,root,root) /%{_lib}/security/pam_smbpass*
-%{_libdir}/%{name}/vfs/vfs_audit.so
-%{_libdir}/%{name}/vfs/vfs_netatalk.so
-%{_libdir}/%{name}/vfs/vfs_recycle.so
-%{_libdir}/%{name}/vfs/vfs_extd_audit.so
+%dir %{_libdir}/%{name}/vfs
+%{_libdir}/%{name}/vfs/*.so
+%dir %{_libdir}/%{name}/pdb
+
#/usr/share/swat
%attr(-,root,root) %config(noreplace) /etc/%{name}/smbusers
%attr(-,root,root) %config %{_initrddir}/smb%{samba_major}
%{_mandir}/man1/smbcontrol*.1*
%attr(775,root,root) %dir %{_localstatedir}/%{name}/netlogon
%attr(775,root,root) %dir %{_localstatedir}/%{name}/profiles
-%attr(775,root,root) %dir %{_localstatedir}/%{name}/printers/*
+%attr(775,root,root) %dir %{_localstatedir}/%{name}/printers
%attr(1777,root,root) %dir /var/spool/%{name}
+%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/scripts
%attr(0755,root,root) %{_datadir}/%{name}/scripts/print-pdf
#%attr(0750,root,root) %{_datadir}/%{name}/scripts/smbldap*.pl
#%{_bindir}/smbsh%{samba_major}
%{_bindir}/smbpasswd%{samba_major}
%{_bindir}/smbcacls%{samba_major}
+%{_bindir}/smbcquotas%{samba_major}
%{_bindir}/net%{samba_major}
%{_bindir}/smbtree%{samba_major}
%{_bindir}/ntlm_auth%{samba_major}
#%{_libdir}/smbwrapper%{samba_major}.so
+%dir %{_libdir}/%{name}
%{_libdir}/%{name}/*.dat
#%{_libdir}/%{name}/lowcase.dat
#%{_libdir}/%{name}/valid.dat
-%attr(-,root,root) %config(noreplace) /etc/%{name}/smb.conf
-%attr(-,root,root) %config(noreplace) /etc/%{name}/smb-winbind.conf
-%attr(-,root,root) %config(noreplace) /etc/%{name}/lmhosts
+%dir %{_sysconfdir}/%{name}
+%attr(-,root,root) %config(noreplace) %{_sysconfdir}/%{name}/smb.conf
+%attr(-,root,root) %config(noreplace) %{_sysconfdir}/%{name}/smb-winbind.conf
+%attr(-,root,root) %config(noreplace) %{_sysconfdir}/%{name}/lmhosts
+%dir %{_localstatedir}/%{name}
%attr(-,root,root) %{_localstatedir}/%{name}/codepages
#%{_mandir}/man1/make_smbcodepage*.1*
#%{_mandir}/man1/make_unicodemap*.1*
%attr(755,root,root) /%{_lib}/libnss_wins%{samba_major}.so*
%endif
-%if 1
+%if %{?_without_debug:0}%{!?_without_debug:1}
%files debug
%defattr(-,root,root)
%{_bindir}/debug2html%{samba_major}
%files passdb-mysql
%defattr(-,root,root)
-%{_libdir}/%{name}/*/pdb_mysql.so
+%{_libdir}/%{name}/pdb/*mysql.so
%files passdb-xml
%defattr(-,root,root)
-%{_libdir}/%{name}/*/pdb_xml.so
+%{_libdir}/%{name}/pdb/*xml.so
#Files for antivirus support:
%if %build_fprot
%endif
%changelog
+* Mon Apr 28 2003 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha24.0mdk
+- Reenable debug package by (--without debug to not build it), fixed post-a23
+- Add bugzilla note for builds from source (also intended for packages made
+ available on samba FTP site) at samba team request
+- Fix build from CVS (run autogen.sh, pass options to all rpm commands)
+- Appease distriblint, but not much to be done about /usr/share/swat3/ since
+ samba-doc owns some subdirs, and samba-swat others, and they can be installed
+ independantly.
+- Apply kaspersky vscan build fix from samba2
+- Final for alpha24
+
+* Wed Apr 23 2003 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha23.3mdk
+- Small fixes in preparation for testing as system samba
+- Make debug package optional (--with debug) since it's often broken
+- Add support for 9.2 (including in-line smbd quota patch for glibc2.3)
+- Add --with options option, which will just show you the available options and exit
+
+* Sun Apr 06 2003 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha23.2mdk
+- Alpha23
+- buildrequire autconf2.5
+- samba-vscan 0.3.2a
+- Remove patch 102 (upstreamed)
+
* Thu Mar 06 2003 Buchan Milne <bgmilne@linux-mandrake.com> 3.0-0.alpha22.2mdk
- Alpha22
- Add profiles binary to server and ntlm_auth to common