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>
11 License: GNU GPL version 3
12 Group: System Environment/Daemons
13 URL: http://www.samba.org/
15 Source: samba-%{version}.tar.bz2
17 # Don't depend on Net::LDAP
18 Source998: filter-requires-samba.sh
19 Source999: setup.tar.bz2
21 Requires: /sbin/chkconfig /bin/mktemp /usr/bin/killall
22 Requires: fileutils sed /etc/init.d
24 Requires: pam >= 0.64 %{auth}
25 Requires: samba-common = %{version}-%{release}
26 Provides: samba = %{version}
29 BuildRoot: %{_tmppath}/%{name}-%{version}-root
30 BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel, e2fsprogs-devel, gettext
31 # requirements for building the man pages:
32 BuildRequires: libxslt, docbook-utils, docbook-style-xsl, rsync
33 BuildRequires: ctdb-devel >= 1.2.25
35 # Working around perl dependency problem from docs
36 %define __perl_requires %{SOURCE998}
38 # rpm screws up the arch lib dir when using --target on RHEL5
39 %ifarch i386 i486 i586 i686 ppc s390
42 %define _libarch %_lib
45 %define _libarchdir /usr/%{_libarch}
47 %define numcpu %(grep "^processor" /proc/cpuinfo |wc -l | sed -e 's/^0$/1/')
49 %define with_vfs_gpfs PGPFS_DEFAULT
50 %define with_vfs_tsmsm PGPFS_DEFAULT
53 %define vfs_tsmsm ,vfs_tsmsm
57 %define vfs_gpfs ,vfs_gpfs
60 %define vfs_modules %{?vfs_gpfs}%{?vfs_tsmsm}
62 %define shared_modules idmap_rid,idmap_ad,idmap_tdb2%{vfs_modules}
65 Samba is the protocol by which a lot of PC-related machines share
66 files, printers, and other information (such as lists of available
67 files and printers). The Windows NT, OS/2, and Linux operating systems
68 support this natively, and add-on packages can enable the same thing
69 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
70 provides an SMB server that can be used to provide network services to
71 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
72 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
73 NetBIOS frame) protocol.
76 ######################################################################
78 Summary: Samba (SMB) client programs.
79 Group: Applications/System
80 Requires: samba-common = %{version}-%{release}
82 Provides: samba-client = %{version}-%{release}
85 The samba-client package provides some SMB clients to compliment the
86 built-in SMB filesystem in Linux. These clients allow access of SMB
87 shares and printing to SMB printers.
90 #######################################################################
92 Summary: Files used by both Samba servers and clients.
93 Group: Applications/System
94 Provides: samba-common = %{version}-%{release}
97 Samba-common provides files necessary for both the server and client
102 #######################################################################
104 Summary: The Samba SMB server configuration program.
105 Group: Applications/System
106 Requires: samba = %{version} xinetd
107 Provides: samba-swat = %{version}-%{release}
110 The samba-swat package includes the new SWAT (Samba Web Administration
111 Tool), for remotely managing Samba's smb.conf file using your favorite
115 #######################################################################
117 Summary: Samba Documentation
118 Group: Documentation/Other
119 Provides: samba-doc = %{version}-%{release}
120 Requires: /usr/bin/find /bin/rm /usr/bin/xargs
123 The samba-doc package includes the HTML versions of the Samba manpages
124 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
125 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
128 #######################################################################
133 # setup the vendor files (init scripts, etc...)
134 %setup -T -D -a 999 -n samba-%{version} -q
138 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
141 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
144 if ccache -h >/dev/null 2>&1 ; then
152 ## always run autogen.sh
155 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
156 --prefix=%{_prefix} \
157 --localstatedir=/var \
158 --with-configdir=%{_sysconfdir}/samba \
159 --libdir=%{_libarchdir} \
160 --with-modulesdir=%{_libarchdir}/samba \
161 --with-pammodulesdir=/%{_libarch}/security \
162 --with-lockdir=/var/lib/samba \
163 --with-logfilebase=/var/log/samba \
164 --mandir=%{_mandir} \
165 --with-piddir=/var/run \
166 --with-privatedir=%{_sysconfdir}/samba \
173 --with-libsmbclient \
174 --with-libsmbsharemodes \
175 --without-smbwrapper \
178 --with-shared-modules=%{shared_modules} \
181 --with-cluster-support \
182 --with-ctdb=/usr/include \
184 --without-dnsupdate \
186 --disable-merged-build \
187 --disable-external-libtalloc \
188 --disable-external-libtdb
192 ## check for gcc 3.4 or later
193 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
194 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
195 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
196 if [ ${CC_MAJOR} -ge 3 ]; then
197 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
203 make -j %{numcpu} %{?_smp_mflags} \
204 everything modules pam_smbpass
206 # check that desired suppor has been compiled into smbd:
207 export LD_LIBRARY_PATH=./bin
209 HAVE_VARS="HAVE_POSIX_ACLS HAVE_LDAP HAVE_KRB5 CLUSTER_SUPPORT"
211 HAVE_VARS="${HAVE_VARS} HAVE_GPFS"
213 for test in ${HAVE_VARS}
215 if ! $(./bin/smbd -b | grep -q $test ) ; then
216 echo "ERROR: '$test' is not in smbd. Build stopped."
221 # try and build the manpages
223 ./release-scripts/build-manpages-nogit
225 # Remove some permission bits to avoid to many dependencies
226 find examples docs -type f | xargs -r chmod -x
229 # Clean up in case there is trash left from a previous build
230 rm -rf $RPM_BUILD_ROOT
232 # Create the target build directory hierarchy
233 mkdir -p $RPM_BUILD_ROOT%{_datadir}/samba/swat/{help,include,using_samba/{figs,gifsa}}
234 mkdir -p $RPM_BUILD_ROOT%{_includedir}
235 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
236 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
237 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
238 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
239 mkdir -p $RPM_BUILD_ROOT/lib/security
240 mkdir -p $RPM_BUILD_ROOT%{_mandir}
241 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
242 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
243 mkdir -p $RPM_BUILD_ROOT/sbin
244 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,samba}
245 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d}
246 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
247 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
248 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
249 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
250 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
251 mkdir -p $RPM_BUILD_ROOT/%{_libarchdir}/krb5/plugins/libkrb5
254 make DESTDIR=$RPM_BUILD_ROOT \
257 make DESTDIR=$RPM_BUILD_ROOT \
258 install-dbwrap_tool install-dbwrap_torture
261 # NSS winbind support
262 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
263 ( cd $RPM_BUILD_ROOT/%{_libarch};
264 ln -sf libnss_winbind.so.2 libnss_winbind.so )
266 # do not install libnss_wins.so in order to reduce dependencies
267 # (we do not need it for the samba-ctdb scenario)
269 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
270 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
272 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
276 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
278 # remove installed but unpackaged files:
279 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtalloc.so
280 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtdb.so
281 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/samba/perfcount/pc_test.so
284 # Install the miscellany
285 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
287 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
288 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
289 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
290 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
291 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
292 install -m755 packaging/printing/smbprint $RPM_BUILD_ROOT%{_bindir}
293 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
294 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
295 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
297 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
298 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
300 # Remove "*.old" files
301 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
305 ## Clean out man pages for tools not installed here
307 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
308 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
309 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
313 rm -rf $RPM_BUILD_ROOT
316 ## deal with an upgrade from a broken 3.0.21b RPM
317 if [ "$1" -eq "2" ]; then
318 if [ -d /var/cache/samba ]; then
319 for file in `ls /var/cache/samba/*tdb`; do
320 /bin/cp -up $file /var/lib/samba/`basename $file`
322 mkdir -p /var/lib/samba/eventlog
323 for file in `ls /var/cache/samba/eventlog/*tdb`; do
324 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
326 /bin/mv /var/cache/samba /var/cache/samba.moved
330 if [ "$1" -ge "1" ]; then
331 /sbin/service smb condrestart >/dev/null 2>&1 || :
336 /sbin/service smb stop >/dev/null 2>&1 || :
337 /sbin/chkconfig --del smb
338 # rm -rf /var/log/samba/* /var/lib/samba/*
345 # Add swat entry to /etc/services if not already there.
346 if [ ! "`grep ^\s**swat /etc/services`" ]; then
347 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
353 if [ "$1" -ge "1" ]; then
354 /sbin/service winbind condrestart >/dev/null 2>&1 || :
359 /sbin/service winbind stop >/dev/null 2>&1 || :
360 /sbin/chkconfig --del winbind
367 #######################################################################
369 #######################################################################
372 %defattr(-,root,root)
374 %config(noreplace) %{_sysconfdir}/sysconfig/samba
375 %config(noreplace) %{_sysconfdir}/samba/smbusers
376 %attr(755,root,root) %config %{initdir}/smb
377 %config(noreplace) %{_sysconfdir}/pam.d/samba
379 %attr(0755,root,root) %dir /var/log/samba
380 %attr(0755,root,root) %dir /var/lib/samba
381 %attr(1777,root,root) %dir /var/spool/samba
388 %{_bindir}/mksmbpasswd.sh
389 %{_bindir}/smbcontrol
394 %{_bindir}/tdbrestore
395 %{_bindir}/eventlogadm
397 %{_libarchdir}/samba/auth/script.so
398 %{_libarchdir}/samba/vfs/acl_tdb.so
399 %{_libarchdir}/samba/vfs/acl_xattr.so
400 %{_libarchdir}/samba/vfs/aio_fork.so
401 %{_libarchdir}/samba/vfs/audit.so
402 %{_libarchdir}/samba/vfs/cap.so
403 %{_libarchdir}/samba/vfs/catia.so
404 %{_libarchdir}/samba/vfs/crossrename.so
405 %{_libarchdir}/samba/vfs/default_quota.so
406 %{_libarchdir}/samba/vfs/dirsort.so
407 %{_libarchdir}/samba/vfs/expand_msdfs.so
408 %{_libarchdir}/samba/vfs/extd_audit.so
409 %{_libarchdir}/samba/vfs/fake_perms.so
410 %{_libarchdir}/samba/vfs/fileid.so
411 %{_libarchdir}/samba/vfs/full_audit.so
413 %{_libarchdir}/samba/vfs/gpfs.so
415 %{_libarchdir}/samba/vfs/linux_xfs_sgid.so
416 %{_libarchdir}/samba/vfs/netatalk.so
417 %{_libarchdir}/samba/vfs/preopen.so
418 %{_libarchdir}/samba/vfs/readahead.so
419 %{_libarchdir}/samba/vfs/readonly.so
420 %{_libarchdir}/samba/vfs/recycle.so
421 %{_libarchdir}/samba/vfs/scannedonly.so
422 %{_libarchdir}/samba/vfs/shadow_copy.so
423 %{_libarchdir}/samba/vfs/shadow_copy2.so
424 %{_libarchdir}/samba/vfs/smb_traffic_analyzer.so
425 %{_libarchdir}/samba/vfs/streams_depot.so
426 %{_libarchdir}/samba/vfs/streams_xattr.so
427 %{_libarchdir}/samba/vfs/syncops.so
428 %{_libarchdir}/samba/vfs/time_audit.so
429 %if %{with_vfs_tsmsm}
430 %{_libarchdir}/samba/vfs/tsmsm.so
432 %{_libarchdir}/samba/vfs/xattr_tdb.so
433 %{_libarchdir}/samba/vfs/aio_posix.so
434 %{_libarchdir}/samba/vfs/aio_pthread.so
435 %{_libarchdir}/samba/vfs/media_harmony.so
437 %{_mandir}/man1/smbcontrol.1*
438 %{_mandir}/man1/smbstatus.1*
439 %{_mandir}/man1/vfstest.1*
440 %{_mandir}/man5/smbpasswd.5*
441 %{_mandir}/man5/pam_winbind.conf.5*
442 %{_mandir}/man7/samba.7*
443 %{_mandir}/man8/nmbd.8*
444 %{_mandir}/man8/pdbedit.8*
445 %{_mandir}/man8/smbd.8*
446 %{_mandir}/man8/eventlogadm.8*
447 %{_mandir}/man8/vfs_*.8*
448 %{_mandir}/man8/smbta-util.8*
454 %defattr(-,root,root)
459 %doc docs-xml/archives/THANKS
460 %doc docs-xml/archives/history
461 %doc docs-xml/registry
464 %doc examples/libsmbclient
466 %doc examples/printer-accounting
467 %doc examples/printing
472 %defattr(-,root,root)
473 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
474 %dir %{_datadir}/samba/swat
475 %{_datadir}/samba/swat/*
477 %{_mandir}/man8/swat.8*
478 %attr(755,root,root) %{_datadir}/samba/codepages/*.msg
483 %defattr(-,root,root)
496 %{_bindir}/smbta-util
498 %{_mandir}/man8/smbspool.8*
499 %{_mandir}/man1/smbget.1*
500 %{_mandir}/man5/smbgetrc.5*
501 %{_mandir}/man1/findsmb.1*
502 %{_mandir}/man1/nmblookup.1*
503 %{_mandir}/man1/rpcclient.1*
504 %{_mandir}/man1/smbcacls.1*
505 %{_mandir}/man1/smbclient.1*
506 %{_mandir}/man1/smbtar.1*
507 %{_mandir}/man1/smbtree.1*
508 %{_mandir}/man1/sharesec.1*
514 %defattr(-,root,root)
515 %dir %{_sysconfdir}/samba
516 %dir %{_libarchdir}/samba
517 %dir %{_libarchdir}/samba/charset
518 %config(noreplace) %{_sysconfdir}/samba/smb.conf
519 %config(noreplace) %{_sysconfdir}/samba/lmhosts
520 %attr(755,root,root) %config %{initdir}/winbind
522 %attr(755,root,root) /%{_libarch}/libnss_winbind.so
523 %attr(755,root,root) /%{_libarch}/libnss_winbind.so.2
524 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
525 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
526 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
527 /usr/share/locale/*/LC_MESSAGES/net.mo
529 %{_libarchdir}/samba/idmap/ad.so
530 %{_libarchdir}/samba/idmap/rid.so
531 %{_libarchdir}/samba/idmap/tdb2.so
532 %{_libarchdir}/samba/idmap/autorid.so
533 %{_libarchdir}/samba/idmap/hash.so
534 %{_libarchdir}/samba/nss_info/hash.so
535 %{_libarchdir}/samba/nss_info/rfc2307.so
536 %{_libarchdir}/samba/nss_info/sfu.so
537 %{_libarchdir}/samba/nss_info/sfu20.so
538 %{_datadir}/samba/codepages/lowcase.dat
539 %{_datadir}/samba/codepages/upcase.dat
540 %{_datadir}/samba/codepages/valid.dat
542 %{_includedir}/libsmbclient.h
543 %{_libarchdir}/libsmbclient.*
544 %{_includedir}/smb_share_modes.h
545 %{_libarchdir}/libsmbsharemodes.so
546 %{_libarchdir}/libsmbsharemodes.so.0
548 %{_includedir}/netapi.h
549 %{_includedir}/wbclient.h
550 %{_libarchdir}/libnetapi.so
551 %{_libarchdir}/libnetapi.so.0
552 %{_libarchdir}/libwbclient.so
553 %{_libarchdir}/libwbclient.so.0
555 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
567 %{_bindir}/smbcquotas
568 %{_bindir}/dbwrap_tool
569 %{_bindir}/dbwrap_torture
571 %{_mandir}/man1/ntlm_auth.1*
572 %{_mandir}/man1/profiles.1*
573 %{_mandir}/man1/smbcquotas.1*
574 %{_mandir}/man1/testparm.1*
575 %{_mandir}/man5/smb.conf.5*
576 %{_mandir}/man5/lmhosts.5*
577 %{_mandir}/man8/smbpasswd.8*
578 %{_mandir}/man1/wbinfo.1*
579 %{_mandir}/man8/winbindd.8*
580 %{_mandir}/man8/net.8*
581 %{_mandir}/man8/pam_winbind.8*
582 %{_mandir}/man7/libsmbclient.7*
583 %{_mandir}/man7/winbind_krb5_locator.7*
584 %{_mandir}/man8/idmap_*.8*
589 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
590 - Removed ChangeLog entries since they are kept in CVS