2 %define alpha_version 5
3 %define samba_version 4.0.0alpha%{alpha_version}
4 %define tarball_name samba-4.0.0alpha%{alpha_version}
6 #Set what versions we require for tdb and talloc
7 %define tdb_version 1.1.1
8 %define talloc_version 1.2.0
10 %{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
12 Summary: The Samba4 CIFS and AD client and server suite
16 Release: 0.%{main_release}.alpha%{alpha_version}%{?dist}
17 License: GPLv3+, LGPLv3+, BSD
18 Group: System Environment/Daemons
19 URL: http://www.samba.org/
21 Source: http://download.samba.org/samba/ftp/samba4/%{tarball_name}.tar.gz
23 # Red Hat specific replacement-files
25 Source4: %{name}.sysconfig
28 Requires(pre): %{name}-common = %{epoch}:%{version}-%{release}
29 Requires: pam >= 0:0.64
30 Requires: logrotate >= 0:3.4
31 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
32 Requires(pre): /usr/sbin/groupadd
33 Requires(post): /sbin/chkconfig, /sbin/service
34 Requires(preun): /sbin/chkconfig, /sbin/service
35 BuildRequires: pam-devel, readline-devel, ncurses-devel, libacl-devel, e2fsprogs-devel
36 BuildRequires: popt-devel, libattr-devel, libaio-devel, sed, ldconfig
37 BuildRequires: perl(ExtUtils::MakeMaker)
38 BuildRequires: libtalloc-devel >= %{talloc_version}
39 BuildRequires: libtdb-devel >= %{tdb_version}
43 Samba 4 is the ambitious next version of the Samba suite that is being
44 developed in parallel to the stable 3.0 series. The main emphasis in
45 this branch is support for the Active Directory logon protocols used
46 by Windows 2000 and above.
49 Summary: Samba client programs
50 Group: Applications/System
51 Requires: %{name}-common = %{epoch}:%{version}-%{release}
52 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
55 The %{name}-client package provides some SMB/CIFS clients to complement
56 the built-in SMB/CIFS filesystem in Linux. These clients allow access
57 of SMB/CIFS shares and printing to SMB/CIFS printers.
60 Summary: Samba libraries
61 Group: Applications/System
62 Requires: libtdb >= 0:%{tdb_version}
63 Requires: libtalloc >= 0:%{talloc_version}
66 The %{name}-libs package contains the libraries needed by programs
67 that link against the SMB, RPC and other protocols provided by the Samba suite.
70 Summary: Samba python libraries
71 Group: Applications/System
72 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
75 The %{name}-python package contains the python libraries needed by programs
76 that use SMB, RPC and other Samba provided protocols in python programs/
79 Summary: Developor tools for Samba libraries
80 Group: Development/Libraries
81 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
84 The %{name}-devel package contains the header files for the libraries
85 needed to develop programs that link against the SMB, RPC and other
86 libraries in the Samba suite.
89 Summary: Perl IDL compiler
90 Group: Development/Tools
91 Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
94 The %{name}-pidl package contains the Perl IDL compiler used by Samba
95 and Wireshark to parse IDL and similar protocols
98 Summary: Files used by both Samba servers and clients
99 Group: Applications/System
100 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
101 Requires(post): /sbin/chkconfig, /sbin/service, coreutils
102 Requires(preun): /sbin/chkconfig, /sbin/service
105 %{Name}-common provides files necessary for both the server and client
109 Summary: Samba winbind
110 Group: Applications/System
111 Requires: %{name} = %{epoch}:%{version}-%{release}
114 The samba-winbind package provides the winbind NSS library, and some
115 client tools. Winbind enables Linux to be a full member in Windows
116 domains and to use Windows user and group accounts on Linux.
120 # TAG: change for non-pre
121 %setup -q -n %{tarball_name}
124 # copy Red Hat specific scripts
129 mv source/VERSION source/VERSION.orig
130 sed -e 's/SAMBA_VERSION_VENDOR_SUFFIX=$/&%{release}/' < source/VERSION.orig > source/VERSION
140 --with-lockdir=/var/lib/%{name} \
141 --with-piddir=/var/run \
142 --with-privatedir=/var/lib/%{name}/private \
143 --with-logfilebase=/var/log/%{name} \
144 --with-configdir=%{_sysconfdir}/%{name} \
145 --with-winbindd-socket-dir=/var/run/winbind \
146 --with-ntp-signd-socket-dir=/var/run/ntp_signd \
149 #Build PIDL for installation into vendor directories before 'make proto' gets to it
150 (cd pidl && %{__perl} Makefile.PL INSTALLDIRS=vendor )
152 #Builds using PIDL the IDL and many other things
158 rm -rf $RPM_BUILD_ROOT
162 #Don't call 'make install' as we want to call out to the PIDL install manually
163 make installbin installdat installswat installmisc installlib installheader installpc installplugins installpython DESTDIR=%{buildroot}
166 ( cd pidl && make install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT )
168 #Clean out crap left behind by the Pidl install
169 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
170 find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
174 mkdir -p $RPM_BUILD_ROOT/%{_initrddir}
175 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d
176 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
177 mkdir -p $RPM_BUILD_ROOT/var/run/winbindd
178 mkdir -p $RPM_BUILD_ROOT/var/run/ntp_signd
179 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/winbindd_privileged
180 mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/
181 mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/old
183 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}
184 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/private
185 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/sysvol
187 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
189 # Install other stuff
190 install -m755 %{SOURCE5} $RPM_BUILD_ROOT/%{_initrddir}/%{name}
191 install -m644 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/%{name}
194 mkdir -p $RPM_BUILD_ROOT/%{_lib}
195 ln -sf ../%{_libdir}/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so.2
198 mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
202 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
204 #clean out some stuff we don't want in the Fedora package
205 rm $RPM_BUILD_ROOT/%{_bindir}/autoidl.py*
206 rm $RPM_BUILD_ROOT/%{_bindir}/epdump.py*
207 rm $RPM_BUILD_ROOT/%{_bindir}/gentest
208 rm $RPM_BUILD_ROOT/%{_bindir}/locktest
209 rm $RPM_BUILD_ROOT/%{_bindir}/masktest
210 rm $RPM_BUILD_ROOT/%{_bindir}/minschema.py*
211 rm $RPM_BUILD_ROOT/%{_bindir}/rpcclient
212 rm $RPM_BUILD_ROOT/%{_bindir}/samba3dump
213 rm $RPM_BUILD_ROOT/%{_bindir}/setnttoken
214 rm $RPM_BUILD_ROOT/%{_bindir}/getntacl
215 rm $RPM_BUILD_ROOT/%{_datadir}/samba/js/base.js
217 /sbin/ldconfig -N -n $RPM_BUILD_ROOT/%{_libdir}
219 #Fix up permission on perl install
220 %{_fixperms} $RPM_BUILD_ROOT/%{perl_vendorlib}
222 #Fix up permissions in source tree, for debuginfo
223 find -type f | xargs chmod -x
226 rm -rf $RPM_BUILD_ROOT
229 getent group wbpriv >/dev/null || groupadd -g 88 wbpriv
233 /sbin/chkconfig --add %{name}
234 if [ "$1" -ge "1" ]; then
235 /sbin/service %{name} condrestart >/dev/null 2>&1 || :
241 /sbin/service %{name} stop >/dev/null 2>&1 || :
242 /sbin/chkconfig --del %{name}
246 %post libs -p /sbin/ldconfig
248 %postun libs -p /sbin/ldconfig
252 %defattr(-,root,root)
256 %attr(755,root,root) %{_initrddir}/%{name}
257 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
258 %dir %{_datadir}/samba/setup
259 %{_datadir}/samba/setup/*
260 %dir /var/lib/%{name}/sysvol
261 %config(noreplace) %{_sysconfdir}/sysconfig/%{name}
262 %attr(0700,root,root) %dir /var/log/%{name}
263 %attr(0700,root,root) %dir /var/log/%{name}/old
266 %defattr(-,root,root)
267 %doc WHATSNEW.txt NEWS PFIF.txt
268 %dir %{_datadir}/samba
269 %{_datadir}/samba/*.dat
272 %dir %{_sysconfdir}/%{name}
273 #Need to mark this as being owned by Samba, but it is normally created
274 #by the provision script, which runs best if there is no existing
276 #%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
279 %defattr(-,root,root)
282 %{_libdir}/libnss_winbind.so
283 /%{_lib}/libnss_winbind.so.2
284 %dir /var/run/winbindd
285 %attr(750,root,wbpriv) %dir /var/lib/%{name}/winbindd_privileged
288 %defattr(-,root,root)
292 %defattr(-,root,root)
293 %{_libdir}/libdcerpc.so
294 %{_libdir}/libdcerpc_atsvc.so
295 %{_libdir}/libdcerpc_samr.so
296 %{_libdir}/libgensec.so
299 %{_libdir}/libregistry.so
300 %{_libdir}/libsamba-hostconfig.so
301 %{_libdir}/libtorture.so
309 %defattr(-,root,root,-)
311 %{_mandir}/man1/pidl*
312 %{_mandir}/man3/Parse*
313 %attr(755,root,root) %{_bindir}/pidl
316 %defattr(-,root,root)
322 %defattr(-,root,root)
331 %{_bindir}/ad2oLschema
332 %{_bindir}/oLschema2ldif
337 %{_bindir}/subunitrun
338 %{_bindir}/smbtorture
340 %dir /var/lib/%{name}
341 %attr(700,root,root) %dir /var/lib/%{name}/private
342 # We don't want to put a smb.conf in by default, provision should create it
343 #%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
349 * Thu Jun 26 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.1.alpha4.fc9
350 - Rework Fedora's Samba 3.2.0-1.rc2.16 spec file for Samba4