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 install DESTDIR=%{buildroot}
165 #Undo the PIDL install, we want to try again with the right options
166 rm -rf $RPM_BUILD_ROOT/%{_libdir}/perl5
167 rm -rf $RPM_BUILD_ROOT/%{_datadir}/perl5
170 ( cd pidl && make install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT )
172 #Clean out crap left behind by the Pidl install
173 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
174 find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
178 mkdir -p $RPM_BUILD_ROOT/%{_initrddir}
179 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d
180 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
181 mkdir -p $RPM_BUILD_ROOT/var/run/winbindd
182 mkdir -p $RPM_BUILD_ROOT/var/run/ntp_signd
183 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/winbindd_privileged
184 mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/
185 mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/old
187 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}
188 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/private
189 mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/sysvol
191 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
193 # Install other stuff
194 install -m755 %{SOURCE5} $RPM_BUILD_ROOT/%{_initrddir}/%{name}
195 install -m644 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/%{name}
198 mkdir -p $RPM_BUILD_ROOT/%{_lib}
199 ln -sf ../%{_libdir}/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so.2
202 mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
206 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
208 #clean out some stuff we don't want in the Fedora package
209 rm $RPM_BUILD_ROOT/%{_bindir}/autoidl.py*
210 rm $RPM_BUILD_ROOT/%{_bindir}/epdump.py*
211 rm $RPM_BUILD_ROOT/%{_bindir}/gentest
212 rm $RPM_BUILD_ROOT/%{_bindir}/locktest
213 rm $RPM_BUILD_ROOT/%{_bindir}/masktest
214 rm $RPM_BUILD_ROOT/%{_bindir}/minschema.py*
215 rm $RPM_BUILD_ROOT/%{_bindir}/rpcclient
216 rm $RPM_BUILD_ROOT/%{_bindir}/samba3dump
217 rm $RPM_BUILD_ROOT/%{_bindir}/setnttoken
218 rm $RPM_BUILD_ROOT/%{_bindir}/getntacl
219 rm $RPM_BUILD_ROOT/%{_datadir}/samba/js/base.js
221 #This makes the right links, as rpmlint requires that the
222 #ldconfig-created links be recorded in the RPM.
223 /sbin/ldconfig -N -n $RPM_BUILD_ROOT/%{_libdir}
225 #Fix up permission on perl install
226 %{_fixperms} $RPM_BUILD_ROOT/%{perl_vendorlib}
228 #Fix up permissions in source tree, for debuginfo
229 find source/heimdal -type f | xargs chmod -x
232 rm -rf $RPM_BUILD_ROOT
235 getent group wbpriv >/dev/null || groupadd -g 88 wbpriv
239 /sbin/chkconfig --add %{name}
240 if [ "$1" -ge "1" ]; then
241 /sbin/service %{name} condrestart >/dev/null 2>&1 || :
247 /sbin/service %{name} stop >/dev/null 2>&1 || :
248 /sbin/chkconfig --del %{name}
252 %post libs -p /sbin/ldconfig
254 %postun libs -p /sbin/ldconfig
258 %defattr(-,root,root)
262 %attr(755,root,root) %{_initrddir}/%{name}
263 %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
264 %dir %{_datadir}/samba/setup
265 %{_datadir}/samba/setup/*
266 %dir /var/lib/%{name}/sysvol
267 %config(noreplace) %{_sysconfdir}/sysconfig/%{name}
268 %attr(0700,root,root) %dir /var/log/%{name}
269 %attr(0700,root,root) %dir /var/log/%{name}/old
272 %defattr(-,root,root)
273 %doc WHATSNEW.txt NEWS PFIF.txt
274 %dir %{_datadir}/samba
275 %{_datadir}/samba/*.dat
277 #Only needed if Samba's build produces plugins
279 %dir %{_sysconfdir}/%{name}
280 #Need to mark this as being owned by Samba, but it is normally created
281 #by the provision script, which runs best if there is no existing
283 #%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
286 %defattr(-,root,root)
289 %{_libdir}/libnss_winbind.so
290 /%{_lib}/libnss_winbind.so.2
291 %dir /var/run/winbindd
292 %attr(750,root,wbpriv) %dir /var/lib/%{name}/winbindd_privileged
295 %defattr(-,root,root)
299 %defattr(-,root,root)
300 %{_libdir}/libdcerpc.so
301 %{_libdir}/libdcerpc_atsvc.so
302 %{_libdir}/libdcerpc_samr.so
303 %{_libdir}/libgensec.so
306 %{_libdir}/libregistry.so
307 %{_libdir}/libsamba-hostconfig.so
308 %{_libdir}/libtorture.so
316 %defattr(-,root,root,-)
318 %{_mandir}/man1/pidl*
319 %{_mandir}/man3/Parse*
320 %attr(755,root,root) %{_bindir}/pidl
323 %defattr(-,root,root)
329 %defattr(-,root,root)
338 %{_bindir}/ad2oLschema
339 %{_bindir}/oLschema2ldif
344 %{_bindir}/subunitrun
345 %{_bindir}/smbtorture
347 %dir /var/lib/%{name}
348 %attr(700,root,root) %dir /var/lib/%{name}/private
349 # We don't want to put a smb.conf in by default, provision should create it
350 #%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
356 * Mon Jun 30 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.2.alpha5.fc9
357 - Update per review feedback
360 * Thu Jun 26 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.1.alpha4.fc9
361 - Rework Fedora's Samba 3.2.0-1.rc2.16 spec file for Samba4