1 %define initdir %{_sysconfdir}/rc.d/init.d
2 %define auth %(test -f /etc/pam.d/system-auth && echo /etc/pam.d/system-auth || echo)
4 Summary: Samba SMB client and server
6 Packager: Samba Team <samba@samba.org>
10 License: GNU GPL version 2
11 Group: System Environment/Daemons
12 URL: http://www.samba.org/
14 Source: samba-%{version}.tar.gz
17 Source4: samba.sysconfig
25 # Don't depend on Net::LDAP
26 Source999: filter-requires-samba.sh
28 Requires: pam >= 0.64 %{auth} samba-common = %{version}
29 Requires: logrotate >= 3.4 initscripts >= 5.54-1
30 BuildRoot: %{_tmppath}/%{name}-%{version}-root
31 Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
32 Prereq: fileutils sed /etc/init.d
33 BuildRequires: pam-devel, readline-devel, ncurses-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel
34 Provides: samba = %{version}
35 Obsoletes: samba-common, samba-client, samba-swat
37 BuildRoot: %{_tmppath}/%{name}-%{version}-root
41 Samba is the protocol by which a lot of PC-related machines share
42 files, printers, and other information (such as lists of available
43 files and printers). The Windows NT, OS/2, and Linux operating systems
44 support this natively, and add-on packages can enable the same thing
45 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
46 provides an SMB server that can be used to provide network services to
47 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
48 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
49 NetBIOS frame) protocol.
53 Summary: Samba (SMB) client programs.
54 Group: Applications/System
55 Requires: samba-common = %{version}
59 The samba-client package provides some SMB clients to compliment the
60 built-in SMB filesystem in Linux. These clients allow access of SMB
61 shares and printing to SMB printers.
65 Summary: Files used by both Samba servers and clients.
66 Group: Applications/System
69 Samba-common provides files necessary for both the server and client
74 Summary: The Samba SMB server configuration program.
75 Group: Applications/System
76 Requires: samba = %{version} xinetd
79 The samba-swat package includes the new SWAT (Samba Web Administration
80 Tool), for remotely managing Samba's smb.conf file using your favorite
87 # copy Red Hat specific scripts
88 cp %{SOURCE5} packaging/Fedora/
89 cp %{SOURCE6} packaging/Fedora/
90 cp %{SOURCE7} packaging/Fedora/
91 cp %{SOURCE8} packaging/Fedora/winbind.init
96 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
99 libtoolize --copy --force # get it to recognize IA-64
102 EXTRA="-D_LARGEFILE64_SOURCE"
105 ## run autogen if missing the configure script
106 if [ ! -f "configure" ]; then
110 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
111 --prefix=%{_prefix} \
112 --localstatedir=/var \
113 --with-configdir=%{_sysconfdir}/samba \
114 --with-libdir=%{_libdir}/samba \
115 --with-lockdir=/var/cache/samba \
116 --with-logfilebase=/var/log/samba \
117 --with-mandir=%{_mandir} \
118 --with-piddir=/var/run \
119 --with-privatedir=%{_sysconfdir}/samba \
120 --with-sambabook=%{_datadir}/swat/using_samba \
121 --with-swatdir=%{_datadir}/swat \
128 --with-libsmbclient \
129 --with-libsmbsharemodes \
130 --without-smbwrapper \
133 --with-shared-modules=idmap_rid \
140 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto pch
142 make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
143 all modules pam_smbpass
145 ## build the cifs fs mount helper
147 gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
148 gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
151 # Remove some permission bits to avoid to many dependencies
153 find examples docs -type f | xargs -r chmod -x
156 # Clean up in case there is trash left from a previous build
157 rm -rf $RPM_BUILD_ROOT
159 # Create the target build directory hierarchy
160 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
161 mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/using_samba
162 mkdir -p $RPM_BUILD_ROOT%{_includedir}
163 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
164 mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
165 mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
166 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
167 mkdir -p $RPM_BUILD_ROOT%{_mandir}
168 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
169 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
170 mkdir -p $RPM_BUILD_ROOT/sbin
171 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
172 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
173 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
174 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
175 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
176 mkdir -p $RPM_BUILD_ROOT/var/cache/samba/winbindd_privileged
177 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
180 make DESTDIR=$RPM_BUILD_ROOT \
185 cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
187 # NSS & PAM winbind support
188 install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
189 install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
190 install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
191 ( cd $RPM_BUILD_ROOT/%{_lib};
192 ln -sf libnss_winbind.so libnss_winbind.so.2;
193 ln -sf libnss_wins.so libnss_wins.so.2 )
195 # make install puts libsmbclient.so in the wrong place on x86_64
196 rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
197 install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
198 install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
199 install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
200 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
201 if [ %{_libdir} == /usr/lib64 ];then
202 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT/usr/lib/libsmbclient.so.0
203 ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT/usr/lib/libsmbclient.so
206 # make install puts libmsrpc.so in the wrong place on x86_64
207 install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
208 install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
209 install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
210 rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
211 ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
213 # Install pam_smbpass.so
214 install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
216 # we need a symlink for mount to recognise the smb and smbfs filesystem types
217 ln -sf %{_prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
218 ln -sf %{_prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
220 # Install the miscellany
221 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
223 install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
224 install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
225 install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
226 install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
227 install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
228 install -m644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
229 install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
230 install -m644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
231 install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
232 install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
233 install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
234 install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
236 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
237 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
239 # Remove "*.old" files
240 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
242 ## don't duplicate the docs. These are installed by/with SWAT
245 ( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
248 ## Clean out man pages for tools not installed here
250 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
251 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
252 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
256 rm -rf $RPM_BUILD_ROOT
259 /sbin/chkconfig --add smb
263 /sbin/chkconfig --del smb
264 rm -rf /var/log/samba/* /var/cache/samba/*
265 /sbin/service smb stop >/dev/null 2>&1
270 if [ "$1" -ge "1" ]; then
271 %{initdir}/smb condrestart >/dev/null 2>&1
276 # Add swat entry to /etc/services if not already there.
277 if [ ! "`grep ^\s**swat /etc/services`" ]; then
278 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
282 /sbin/chkconfig --add winbind
287 /sbin/chkconfig --del winbind
288 /sbin/service winbind stop >/dev/null 2>&1
292 %postun common -p /sbin/ldconfig
294 %triggerpostun -- samba < 1.9.18p7
296 /sbin/chkconfig --add smb
299 %triggerpostun -- samba < 2.0.5a-3
301 [ ! -d /var/lock/samba ] && mkdir -m 0755 /var/lock/samba
302 [ ! -d /var/spool/samba ] && mkdir -m 1777 /var/spool/samba
303 chmod 644 /etc/services
304 [ -f /etc/inetd.conf ] && chmod 644 /etc/inetd.conf
308 %defattr(-,root,root)
309 %doc README COPYING Manifest
310 %doc WHATSNEW.txt Roadmap
312 %doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
313 %doc examples/printing
315 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
320 %{_bindir}/mksmbpasswd.sh
321 %{_bindir}/smbcontrol
325 %config(noreplace) %{_sysconfdir}/sysconfig/samba
326 %config(noreplace) %{_sysconfdir}/samba/smbusers
327 %attr(755,root,root) %config %{initdir}/smb
328 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
329 %config(noreplace) %{_sysconfdir}/pam.d/samba
330 %{_sysconfdir}/samba/samba.xinetd
331 %{_mandir}/man1/smbcontrol.1*
332 %{_mandir}/man1/smbstatus.1*
333 %{_mandir}/man1/vfstest.1*
334 %{_mandir}/man5/smbpasswd.5*
335 %{_mandir}/man7/samba.7*
336 %{_mandir}/man8/nmbd.8*
337 %{_mandir}/man8/pdbedit.8*
338 %{_mandir}/man8/smbd.8*
339 %{_mandir}/man7/pam_winbind.7*
340 %{_mandir}/man8/tdbbackup.8*
341 %{_mandir}/man7/libsmbclient.7*
345 %attr(0700,root,root) %dir /var/log/samba
346 %attr(1777,root,root) %dir /var/spool/samba
349 %defattr(-,root,root)
350 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
353 %{_mandir}/man8/swat.8*
354 %attr(755,root,root) %{_libdir}/samba/*.msg
357 %defattr(-,root,root)
362 %{_libdir}/samba/lowcase.dat
363 %{_libdir}/samba/upcase.dat
364 %{_libdir}/samba/valid.dat
372 %{_mandir}/man8/tdbdump.8*
373 %{_mandir}/man8/smbmnt.8*
374 %{_mandir}/man8/smbmount.8*
375 %{_mandir}/man8/smbumount.8*
376 %{_mandir}/man8/mount.cifs.8.*
377 %{_mandir}/man8/umount.cifs.8.*
378 %{_mandir}/man8/smbspool.8*
387 %{_mandir}/man1/smbget.1*
388 %{_mandir}/man5/smbgetrc.5*
389 %{_mandir}/man1/findsmb.1*
390 %{_mandir}/man1/nmblookup.1*
391 %{_mandir}/man1/rpcclient.1*
392 %{_mandir}/man1/smbcacls.1*
393 %{_mandir}/man1/smbclient.1*
394 %{_mandir}/man1/smbtar.1*
395 %{_mandir}/man1/smbtree.1*
396 %{_mandir}/man8/net.8*
399 %defattr(-,root,root)
400 /%{_lib}/libnss_wins.so*
401 /%{_lib}/libnss_winbind.so*
402 /%{_lib}/security/pam_winbind.so
403 %{_includedir}/libsmbclient.h
404 %{_libdir}/libsmbclient.a
405 %{_libdir}/libsmbclient.so
406 %{_libdir}/libsmbclient.so.0
408 %{_includedir}/libmsrpc.h
409 %{_libdir}/libmsrpc.a
410 %{_libdir}/libmsrpc.so
411 %{_libdir}/samba/charset/CP*.so
412 %{_libdir}/samba/idmap/idmap*.so
413 %{_libdir}/samba/auth/script.so
419 %{_bindir}/eventlogadm
421 %{_bindir}/smbcquotas
423 %config(noreplace) %{_sysconfdir}/samba/smb.conf
424 %config(noreplace) %{_sysconfdir}/samba/lmhosts
425 %dir %{_sysconfdir}/samba
427 %{_mandir}/man1/ntlm_auth.1*
428 %{_mandir}/man1/profiles.1*
429 %{_mandir}/man1/smbcquotas.1*
430 %{_mandir}/man1/testparm.1*
431 %{_mandir}/man5/smb.conf.5*
432 %{_mandir}/man5/lmhosts.5*
433 %{_mandir}/man8/smbpasswd.8*
434 %{_mandir}/man1/wbinfo.1*
435 %{_mandir}/man8/winbindd.8*
438 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
439 - Removed ChangeLog entries since they are kept in CVS