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/')
50 Samba is the protocol by which a lot of PC-related machines share
51 files, printers, and other information (such as lists of available
52 files and printers). The Windows NT, OS/2, and Linux operating systems
53 support this natively, and add-on packages can enable the same thing
54 for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
55 provides an SMB server that can be used to provide network services to
56 SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
57 TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
58 NetBIOS frame) protocol.
61 ######################################################################
63 Summary: Samba (SMB) client programs.
64 Group: Applications/System
65 Requires: samba-common = %{version}-%{release}
67 Provides: samba-client = %{version}-%{release}
70 The samba-client package provides some SMB clients to compliment the
71 built-in SMB filesystem in Linux. These clients allow access of SMB
72 shares and printing to SMB printers.
75 #######################################################################
77 Summary: Files used by both Samba servers and clients.
78 Group: Applications/System
79 Provides: samba-common = %{version}-%{release}
82 Samba-common provides files necessary for both the server and client
87 #######################################################################
89 Summary: The Samba SMB server configuration program.
90 Group: Applications/System
91 Requires: samba = %{version} xinetd
92 Provides: samba-swat = %{version}-%{release}
95 The samba-swat package includes the new SWAT (Samba Web Administration
96 Tool), for remotely managing Samba's smb.conf file using your favorite
100 #######################################################################
102 Summary: Samba Documentation
103 Group: Documentation/Other
104 Provides: samba-doc = %{version}-%{release}
105 Requires: /usr/bin/find /bin/rm /usr/bin/xargs
108 The samba-doc package includes the HTML versions of the Samba manpages
109 utilized by SWAT as well as the HTML and PDF version of "Using Samba",
110 "Samba By Example", and "The Official Samba HOWTO and Reference Guide".
113 #######################################################################
118 # setup the vendor files (init scripts, etc...)
119 %setup -T -D -a 999 -n samba-%{version} -q
123 /bin/cp setup/filter-requires-samba.sh %{SOURCE998}
126 # RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
129 if ccache -h >/dev/null 2>&1 ; then
137 ## always run autogen.sh
141 CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
142 --prefix=%{_prefix} \
143 --localstatedir=/var \
144 --with-configdir=%{_sysconfdir}/samba \
145 --libdir=%{_libarchdir} \
146 --with-modulesdir=%{_libarchdir}/samba \
147 --with-pammodulesdir=/%{_libarch}/security \
148 --with-lockdir=/var/lib/samba \
149 --with-logfilebase=/var/log/samba \
150 --mandir=%{_mandir} \
151 --with-piddir=/var/run \
152 --with-privatedir=%{_sysconfdir}/samba \
159 --with-libsmbclient \
160 --with-libsmbsharemodes \
161 --without-smbwrapper \
164 --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs,vfs_tsmsm \
167 --with-cluster-support \
168 --with-ctdb=/usr/include \
170 --without-dnsupdate \
172 --disable-merged-build \
173 --disable-smbtorture4 \
174 --disable-external-libtalloc \
175 --disable-external-libtdb
179 ## check for gcc 3.4 or later
180 CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
181 CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
182 CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
183 if [ ${CC_MAJOR} -ge 3 ]; then
184 if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
190 make -j %{numcpu} %{?_smp_mflags} \
191 everything modules pam_smbpass
193 # check that desired suppor has been compiled into smbd:
194 export LD_LIBRARY_PATH=./bin
195 for test in HAVE_POSIX_ACLS HAVE_LDAP HAVE_KRB5 HAVE_GPFS CLUSTER_SUPPORT
197 if ! $(./bin/smbd -b | grep -q $test ) ; then
198 echo "ERROR: '$test' is not in smbd. Build stopped."
203 # try and build the manpages
205 ./release-scripts/build-manpages-nogit
207 # Remove some permission bits to avoid to many dependencies
208 find examples docs -type f | xargs -r chmod -x
211 # Clean up in case there is trash left from a previous build
212 rm -rf $RPM_BUILD_ROOT
214 # Create the target build directory hierarchy
215 mkdir -p $RPM_BUILD_ROOT%{_datadir}/samba/swat/{help,include,using_samba/{figs,gifsa}}
216 mkdir -p $RPM_BUILD_ROOT%{_includedir}
217 mkdir -p $RPM_BUILD_ROOT%{_initrddir}
218 mkdir -p $RPM_BUILD_ROOT{%{_libarchdir},%{_includedir}}
219 mkdir -p $RPM_BUILD_ROOT%{_libarchdir}/samba/{auth,charset,idmap,vfs,pdb}
220 mkdir -p $RPM_BUILD_ROOT/%{_libarch}/security
221 mkdir -p $RPM_BUILD_ROOT/lib/security
222 mkdir -p $RPM_BUILD_ROOT%{_mandir}
223 mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
224 mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
225 mkdir -p $RPM_BUILD_ROOT/sbin
226 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,samba}
227 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d}
228 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
229 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
230 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
231 mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
232 mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
233 mkdir -p $RPM_BUILD_ROOT/%{_libarchdir}/krb5/plugins/libkrb5
236 make DESTDIR=$RPM_BUILD_ROOT \
239 make DESTDIR=$RPM_BUILD_ROOT \
240 install-dbwrap_tool install-dbwrap_torture
243 # NSS winbind support
244 install -m 755 nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
245 ( cd $RPM_BUILD_ROOT/%{_libarch};
246 ln -sf libnss_winbind.so.2 libnss_winbind.so )
248 # do not install libnss_wins.so in order to reduce dependencies
249 # (we do not need it for the samba-ctdb scenario)
251 #install -m 755 nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
252 # ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
254 cp -p source3/bin/winbind_krb5_locator.so ${RPM_BUILD_ROOT}/%{_libarchdir}/krb5/plugins/libkrb5
258 /bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
260 # remove installed but unpackaged files:
261 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtalloc.so
262 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/libtdb.so
263 /bin/rm -f $RPM_BUILD_ROOT/usr/lib*/samba/perfcount/pc_test.so
266 # Install the miscellany
267 echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
269 install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
270 install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
271 install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
272 install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
273 install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
274 install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
275 install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
276 install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
277 install -m755 source3/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
279 ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
280 ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
282 # Remove "*.old" files
283 find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
287 ## Clean out man pages for tools not installed here
289 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
290 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
291 rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
295 rm -rf $RPM_BUILD_ROOT
298 ## deal with an upgrade from a broken 3.0.21b RPM
299 if [ "$1" -eq "2" ]; then
300 if [ -d /var/cache/samba ]; then
301 for file in `ls /var/cache/samba/*tdb`; do
302 /bin/cp -up $file /var/lib/samba/`basename $file`
304 mkdir -p /var/lib/samba/eventlog
305 for file in `ls /var/cache/samba/eventlog/*tdb`; do
306 /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
308 /bin/mv /var/cache/samba /var/cache/samba.moved
312 if [ "$1" -ge "1" ]; then
313 /sbin/service smb condrestart >/dev/null 2>&1 || :
318 /sbin/service smb stop >/dev/null 2>&1 || :
319 /sbin/chkconfig --del smb
320 # rm -rf /var/log/samba/* /var/lib/samba/*
327 # Add swat entry to /etc/services if not already there.
328 if [ ! "`grep ^\s**swat /etc/services`" ]; then
329 echo 'swat 901/tcp # Add swat service used via inetd' >> /etc/services
335 if [ "$1" -ge "1" ]; then
336 /sbin/service winbind condrestart >/dev/null 2>&1 || :
341 /sbin/service winbind stop >/dev/null 2>&1 || :
342 /sbin/chkconfig --del winbind
349 #######################################################################
351 #######################################################################
354 %defattr(-,root,root)
356 %config(noreplace) %{_sysconfdir}/sysconfig/samba
357 %config(noreplace) %{_sysconfdir}/samba/smbusers
358 %attr(755,root,root) %config %{initdir}/smb
359 %config(noreplace) %{_sysconfdir}/pam.d/samba
361 %attr(0755,root,root) %dir /var/log/samba
362 %attr(0755,root,root) %dir /var/lib/samba
363 %attr(1777,root,root) %dir /var/spool/samba
370 %{_bindir}/mksmbpasswd.sh
371 %{_bindir}/smbcontrol
376 %{_bindir}/tdbrestore
377 %{_bindir}/eventlogadm
379 %{_libarchdir}/samba/auth/script.so
380 %{_libarchdir}/samba/vfs/acl_tdb.so
381 %{_libarchdir}/samba/vfs/acl_xattr.so
382 %{_libarchdir}/samba/vfs/aio_fork.so
383 %{_libarchdir}/samba/vfs/audit.so
384 %{_libarchdir}/samba/vfs/cap.so
385 %{_libarchdir}/samba/vfs/catia.so
386 %{_libarchdir}/samba/vfs/crossrename.so
387 %{_libarchdir}/samba/vfs/default_quota.so
388 %{_libarchdir}/samba/vfs/dirsort.so
389 %{_libarchdir}/samba/vfs/expand_msdfs.so
390 %{_libarchdir}/samba/vfs/extd_audit.so
391 %{_libarchdir}/samba/vfs/fake_perms.so
392 %{_libarchdir}/samba/vfs/fileid.so
393 %{_libarchdir}/samba/vfs/full_audit.so
394 %{_libarchdir}/samba/vfs/gpfs.so
395 %{_libarchdir}/samba/vfs/linux_xfs_sgid.so
396 %{_libarchdir}/samba/vfs/netatalk.so
397 %{_libarchdir}/samba/vfs/preopen.so
398 %{_libarchdir}/samba/vfs/readahead.so
399 %{_libarchdir}/samba/vfs/readonly.so
400 %{_libarchdir}/samba/vfs/recycle.so
401 %{_libarchdir}/samba/vfs/scannedonly.so
402 %{_libarchdir}/samba/vfs/shadow_copy.so
403 %{_libarchdir}/samba/vfs/shadow_copy2.so
404 %{_libarchdir}/samba/vfs/smb_traffic_analyzer.so
405 %{_libarchdir}/samba/vfs/streams_depot.so
406 %{_libarchdir}/samba/vfs/streams_xattr.so
407 %{_libarchdir}/samba/vfs/syncops.so
408 %{_libarchdir}/samba/vfs/time_audit.so
409 %{_libarchdir}/samba/vfs/tsmsm.so
410 %{_libarchdir}/samba/vfs/xattr_tdb.so
411 %{_libarchdir}/samba/vfs/aio_posix.so
412 %{_libarchdir}/samba/vfs/aio_pthread.so
413 %{_libarchdir}/samba/vfs/media_harmony.so
415 %{_mandir}/man1/smbcontrol.1*
416 %{_mandir}/man1/smbstatus.1*
417 %{_mandir}/man1/vfstest.1*
418 %{_mandir}/man5/smbpasswd.5*
419 %{_mandir}/man5/pam_winbind.conf.5*
420 %{_mandir}/man7/samba.7*
421 %{_mandir}/man8/nmbd.8*
422 %{_mandir}/man8/pdbedit.8*
423 %{_mandir}/man8/smbd.8*
424 %{_mandir}/man8/eventlogadm.8*
425 %{_mandir}/man8/vfs_*.8*
426 %{_mandir}/man8/smbta-util.8*
432 %defattr(-,root,root)
437 %doc docs-xml/archives/THANKS
438 %doc docs-xml/archives/history
439 %doc docs-xml/registry
442 %doc examples/libsmbclient
444 %doc examples/printer-accounting
445 %doc examples/printing
450 %defattr(-,root,root)
451 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
452 %dir %{_datadir}/samba/swat
453 %{_datadir}/samba/swat/*
455 %{_mandir}/man8/swat.8*
456 %attr(755,root,root) %{_datadir}/samba/codepages/*.msg
461 %defattr(-,root,root)
474 %{_bindir}/smbta-util
476 %{_mandir}/man8/smbspool.8*
477 %{_mandir}/man1/smbget.1*
478 %{_mandir}/man5/smbgetrc.5*
479 %{_mandir}/man1/findsmb.1*
480 %{_mandir}/man1/nmblookup.1*
481 %{_mandir}/man1/rpcclient.1*
482 %{_mandir}/man1/smbcacls.1*
483 %{_mandir}/man1/smbclient.1*
484 %{_mandir}/man1/smbtar.1*
485 %{_mandir}/man1/smbtree.1*
486 %{_mandir}/man1/sharesec.1*
492 %defattr(-,root,root)
493 %dir %{_sysconfdir}/samba
494 %dir %{_libarchdir}/samba
495 %dir %{_libarchdir}/samba/charset
496 %config(noreplace) %{_sysconfdir}/samba/smb.conf
497 %config(noreplace) %{_sysconfdir}/samba/lmhosts
498 %attr(755,root,root) %config %{initdir}/winbind
500 %attr(755,root,root) /%{_libarch}/libnss_winbind.so
501 %attr(755,root,root) /%{_libarch}/libnss_winbind.so.2
502 %attr(755,root,root) /%{_libarch}/security/pam_winbind.so
503 %attr(755,root,root) /%{_libarch}/security/pam_smbpass.so
504 /usr/share/locale/*/LC_MESSAGES/pam_winbind.mo
505 /usr/share/locale/*/LC_MESSAGES/net.mo
507 %{_libarchdir}/samba/idmap/ad.so
508 %{_libarchdir}/samba/idmap/rid.so
509 %{_libarchdir}/samba/idmap/tdb2.so
510 %{_libarchdir}/samba/idmap/autorid.so
511 %{_libarchdir}/samba/idmap/hash.so
512 %{_libarchdir}/samba/nss_info/hash.so
513 %{_libarchdir}/samba/nss_info/rfc2307.so
514 %{_libarchdir}/samba/nss_info/sfu.so
515 %{_libarchdir}/samba/nss_info/sfu20.so
516 %{_datadir}/samba/codepages/lowcase.dat
517 %{_datadir}/samba/codepages/upcase.dat
518 %{_datadir}/samba/codepages/valid.dat
520 %{_includedir}/libsmbclient.h
521 %{_libarchdir}/libsmbclient.*
522 %{_includedir}/smb_share_modes.h
523 %{_libarchdir}/libsmbsharemodes.so
524 %{_libarchdir}/libsmbsharemodes.so.0
526 %{_includedir}/netapi.h
527 %{_includedir}/wbclient.h
528 %{_libarchdir}/libnetapi.so
529 %{_libarchdir}/libnetapi.so.0
530 %{_libarchdir}/libwbclient.so
531 %{_libarchdir}/libwbclient.so.0
533 %{_libarchdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
545 %{_bindir}/smbcquotas
546 %{_bindir}/dbwrap_tool
547 %{_bindir}/dbwrap_torture
549 %{_mandir}/man1/ntlm_auth.1*
550 %{_mandir}/man1/profiles.1*
551 %{_mandir}/man1/smbcquotas.1*
552 %{_mandir}/man1/testparm.1*
553 %{_mandir}/man5/smb.conf.5*
554 %{_mandir}/man5/lmhosts.5*
555 %{_mandir}/man8/smbpasswd.8*
556 %{_mandir}/man1/wbinfo.1*
557 %{_mandir}/man8/winbindd.8*
558 %{_mandir}/man8/net.8*
559 %{_mandir}/man8/pam_winbind.8*
560 %{_mandir}/man7/libsmbclient.7*
561 %{_mandir}/man7/winbind_krb5_locator.7*
562 %{_mandir}/man8/idmap_*.8*
567 * Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
568 - Removed ChangeLog entries since they are kept in CVS