source: trunk/samba/packaging/RHEL/samba.spec @ 26

Last change on this file since 26 was 26, checked in by Paul Smedley, 14 years ago

Updated source to 3.0.25rc1

File size: 15.7 KB
Line 
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)
3
4Summary: Samba SMB client and server
5Vendor: Samba Team
6Packager: Samba Team <samba@samba.org>
7Name:         samba
8Version:      3.0.25
9Release:      3.rc1
10Epoch:        0
11License: GNU GPL version 2
12Group: System Environment/Daemons
13URL: http://www.samba.org/
14
15Source: samba-%{version}.tar.bz2
16
17# Don't depend on Net::LDAP
18Source998: filter-requires-samba.sh
19Source999: setup.tar.bz2
20
21Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
22Prereq: fileutils sed /etc/init.d
23
24Requires: pam >= 0.64 %{auth} 
25Requires: samba-common = %{version}-%{release}
26Requires: logrotate >= 3.4 initscripts >= 5.54-1
27Provides: samba = %{version}
28
29Prefix: /usr
30BuildRoot: %{_tmppath}/%{name}-%{version}-root
31BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel
32
33# Working around perl dependency problem from docs
34%define __perl_requires %{SOURCE998}
35
36
37%description
38Samba is the protocol by which a lot of PC-related machines share
39files, printers, and other information (such as lists of available
40files and printers). The Windows NT, OS/2, and Linux operating systems
41support this natively, and add-on packages can enable the same thing
42for DOS, Windows, VMS, UNIX of all kinds, MVS, and more. This package
43provides an SMB server that can be used to provide network services to
44SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
45TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
46NetBIOS frame) protocol.
47
48
49#######################################################################
50%package client
51Summary: Samba (SMB) client programs.
52Group: Applications/System
53Requires: samba-common = %{version}-%{release}
54Obsoletes: smbfs
55Provides: samba-client = %{version}-%{release}
56
57%description client
58The samba-client package provides some SMB clients to compliment the
59built-in SMB filesystem in Linux. These clients allow access of SMB
60shares and printing to SMB printers.
61
62
63#######################################################################
64%package common
65Summary: Files used by both Samba servers and clients.
66Group: Applications/System
67Provides: samba-common = %{version}-%{release}
68
69%description common
70Samba-common provides files necessary for both the server and client
71packages of Samba.
72
73
74#######################################################################
75%package swat
76Summary: The Samba SMB server configuration program.
77Group: Applications/System
78Requires: samba = %{version} xinetd
79Provides: samba-swat = %{version}-%{release}
80
81%description swat
82The samba-swat package includes the new SWAT (Samba Web Administration
83Tool), for remotely managing Samba's smb.conf file using your favorite
84Web browser.
85
86
87#######################################################################
88%package doc
89Summary:      Samba Documentation
90Group:        Documentation/Other
91Provides:     samba-doc = %{version}-%{release}
92Prereq:       /usr/bin/find /bin/rm /usr/bin/xargs
93
94%description doc
95The samba-doc package includes the HTML versions of the Samba manpages
96utilized by SWAT as well as the HTML and PDF version of "Using Samba",
97"Samba By Example", and "The Official Samba HOWTO and Reference Guide".
98
99
100#######################################################################
101
102%prep
103%setup -q
104
105# setup the vendor files (init scripts, etc...)
106%setup -T -D -a 999 -n samba-%{version} -q
107
108%build
109
110/bin/cp setup/filter-requires-samba.sh %{SOURCE998}
111
112cd source
113# RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
114
115## check for ccache
116# ccache -h 2>&1 > /dev/null
117#if [ $? -eq 0 ]; then
118#       CC="ccache gcc"
119#else
120        CC="gcc"
121#fi
122
123## always run autogen.sh
124./autogen.sh
125
126CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
127        --prefix=%{_prefix} \
128        --localstatedir=/var \
129        --with-configdir=%{_sysconfdir}/samba \
130        --with-libdir=%{_libdir}/samba \
131        --with-lockdir=/var/lib/samba \
132        --with-logfilebase=/var/log/samba \
133        --with-mandir=%{_mandir} \
134        --with-piddir=/var/run \
135        --with-privatedir=%{_sysconfdir}/samba \
136        --with-sambabook=%{_datadir}/swat/using_samba \
137        --with-swatdir=%{_datadir}/swat \
138        --enable-cups \
139        --with-acl-support \
140        --with-ads \
141        --with-automount \
142        --with-fhs \
143        --with-pam_smbpass \
144        --with-libsmbclient \
145        --with-libsmbsharemodes \
146        --without-smbwrapper \
147        --with-pam \
148        --with-quotas \
149        --with-shared-modules=idmap_rid,idmap_ad \
150        --with-smbmount \
151        --with-syslog \
152        --with-utmp
153
154make showlayout
155
156make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE"  proto
157
158## check for gcc 3.4 or later
159CC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
160CC_MAJOR=`echo ${CC_VERSION} | cut -d. -f 1`
161CC_MINOR=`echo ${CC_VERSION} | cut -d. -f 2`
162if [ ${CC_MAJOR} -ge 3 ]; then
163        if [ ${CC_MAJOR} -gt 3 -o ${CC_MINOR} -ge 4 ]; then
164                make pch
165        fi
166fi
167
168
169make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
170        all modules pam_smbpass
171
172## build the cifs fs mount helper
173cd client
174gcc  -o mount.cifs $RPM_OPT_FLAGS  -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
175gcc  -o umount.cifs $RPM_OPT_FLAGS  -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
176cd ..
177
178# Remove some permission bits to avoid to many dependencies
179cd ..
180find examples docs -type f | xargs -r chmod -x
181
182%install
183# Clean up in case there is trash left from a previous build
184rm -rf $RPM_BUILD_ROOT
185
186# Create the target build directory hierarchy
187mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
188mkdir -p $RPM_BUILD_ROOT%{_includedir}
189mkdir -p $RPM_BUILD_ROOT%{_initrddir}
190mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
191mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
192mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
193mkdir -p $RPM_BUILD_ROOT%{_mandir}
194mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
195mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
196mkdir -p $RPM_BUILD_ROOT/sbin
197mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
198mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
199mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
200mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
201mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
202mkdir -p $RPM_BUILD_ROOT/var/lib/samba/winbindd_privileged
203mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
204
205cd source
206make DESTDIR=$RPM_BUILD_ROOT \
207        install
208cd ..
209
210# pam_smbpass
211cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
212
213# NSS & PAM winbind support
214install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
215install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
216install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
217( cd $RPM_BUILD_ROOT/%{_lib};
218  ln -sf libnss_winbind.so  libnss_winbind.so.2;
219  ln -sf libnss_wins.so  libnss_wins.so.2 )
220
221# make install puts libsmbclient.so in the wrong place on x86_64
222rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
223install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
224install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
225install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
226ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
227
228# make install puts libmsrpc.so in the wrong place on x86_64
229rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.so $RPM_BUILD_ROOT/usr/lib*/samba/libmsrpc.a || true
230install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
231install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
232install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
233rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
234ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
235
236# make install puts libsmbsharemodes.so in the wrong place on x86_64
237rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbsharemodes.a || true
238install -m 755 source/bin/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so
239install -m 755 source/bin/libsmbsharemodes.a $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.a
240install -m 644 source/include/smb_share_modes.h $RPM_BUILD_ROOT%{_includedir}
241rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbsharemodes.*
242ln -s /%{_libdir}/libsmbsharemodes.so $RPM_BUILD_ROOT%{_libdir}/libsmbsharemodes.so.0
243
244# Install pam_smbpass.so
245install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
246
247## cleanup
248/bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
249
250# we need a symlink for mount to recognise the smb and smbfs filesystem types
251ln -sf %{_prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
252ln -sf %{_prefix}/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
253/bin/rm -f $RPM_BUILD_ROOT/mount.smbfs
254
255# Install the miscellany
256echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
257
258install -m644 setup/samba.log $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
259install -m644 setup/swat $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
260install -m644 setup/samba.sysconfig $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
261install -m755 setup/smb.init $RPM_BUILD_ROOT%{initdir}/smb
262install -m755 setup/winbind.init $RPM_BUILD_ROOT%{initdir}/winbind
263install -m644 setup/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
264install -m755 setup/smbprint $RPM_BUILD_ROOT%{_bindir}
265install -m644 setup/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
266install -m644 setup/smb.conf $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
267install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
268install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
269install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
270
271/bin/rm $RPM_BUILD_ROOT%{_sbindir}/*mount.cifs
272
273ln -s ../..%{initdir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
274ln -s ../..%{initdir}/winbind  $RPM_BUILD_ROOT%{_sbindir}/winbind
275
276# Remove "*.old" files
277find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
278
279## don't duplicate the docs.  These are installed by/with SWAT
280rm -rf docs/htmldocs
281rm -rf docs/manpages
282( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
283
284##
285## Clean out man pages for tools not installed here
286##
287rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
288rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
289rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
290
291
292%clean
293rm -rf $RPM_BUILD_ROOT
294
295%post
296## deal with an upgrade from a broken 3.0.21b RPM
297if [ "$1" -eq "2" ]; then
298        if [ -d /var/cache/samba ]; then
299                for file in `ls /var/cache/samba/*tdb`; do
300                        /bin/cp -up $file /var/lib/samba/`basename $file`
301                done
302                mkdir -p /var/lib/samba/eventlog
303                for file in `ls /var/cache/samba/eventlog/*tdb`; do
304                        /bin/cp -up $file /var/lib/samba/eventlog/`basename $file`
305                done
306                /bin/mv /var/cache/samba /var/cache/samba.moved
307        fi
308fi
309
310%preun
311if [ $1 = 0 ] ; then
312    /sbin/chkconfig --del smb
313    /sbin/chkconfig --del winbind
314    # rm -rf /var/log/samba/* /var/lib/samba/*
315    /sbin/service smb stop >/dev/null 2>&1
316fi
317exit 0
318
319%postun
320if [ "$1" -ge "1" ]; then
321        %{initdir}/smb restart >/dev/null 2>&1
322fi     
323
324
325%post swat
326# Add swat entry to /etc/services if not already there.
327if [ ! "`grep ^\s**swat /etc/services`" ]; then
328        echo 'swat        901/tcp     # Add swat service used via inetd' >> /etc/services
329fi
330
331%post common
332/sbin/ldconfig
333
334%postun common
335/sbin/ldconfig
336
337#######################################################################
338## Files section                                                     ##
339#######################################################################
340
341%files
342%defattr(-,root,root)
343
344%config(noreplace) %{_sysconfdir}/sysconfig/samba
345%config(noreplace) %{_sysconfdir}/samba/smbusers
346%attr(755,root,root) %config %{initdir}/smb
347%attr(755,root,root) %config %{initdir}/winbind
348%config(noreplace) %{_sysconfdir}/logrotate.d/samba
349%config(noreplace) %{_sysconfdir}/pam.d/samba
350
351%attr(0755,root,root) %dir /var/log/samba
352%attr(0755,root,root) %dir /var/lib/samba
353%attr(1777,root,root) %dir /var/spool/samba
354
355%{_sbindir}/samba
356%{_sbindir}/winbind
357
358%{_sbindir}/smbd
359%{_sbindir}/nmbd
360%{_sbindir}/winbindd
361
362%{_bindir}/mksmbpasswd.sh
363%{_bindir}/smbcontrol
364%{_bindir}/smbstatus
365%{_bindir}/tdbbackup
366%{_bindir}/tdbtool
367%{_bindir}/tdbdump
368%{_bindir}/wbinfo
369%{_bindir}/ntlm_auth
370%{_bindir}/pdbedit
371%{_bindir}/eventlogadm
372
373%{_libdir}/samba/idmap/*.so
374%{_libdir}/samba/vfs/*.so
375%{_libdir}/samba/auth/*.so
376
377%{_mandir}/man1/smbcontrol.1*
378%{_mandir}/man1/smbstatus.1*
379%{_mandir}/man1/vfstest.1*
380%{_mandir}/man5/smbpasswd.5*
381%{_mandir}/man7/samba.7*
382%{_mandir}/man8/nmbd.8*
383%{_mandir}/man8/pdbedit.8*
384%{_mandir}/man8/smbd.8*
385%{_mandir}/man8/tdbbackup.8*
386%{_mandir}/man8/tdbdump.8*
387%{_mandir}/man8/tdbtool.8*
388%{_mandir}/man8/eventlogadm.8*
389%{_mandir}/man8/winbindd.8*
390%{_mandir}/man1/ntlm_auth.1*
391%{_mandir}/man1/wbinfo.1*
392%{_mandir}/man8/vfs_*.8*
393%{_mandir}/man8/idmap_*.8*
394
395
396##########
397
398%files doc
399%defattr(-,root,root)
400%doc README COPYING Manifest
401%doc WHATSNEW.txt Roadmap
402%doc docs
403%doc examples/autofs examples/LDAP examples/libsmbclient examples/misc examples/printer-accounting
404%doc examples/printing
405%doc %{_datadir}/swat/help
406%doc %{_datadir}/swat/using_samba
407
408##########
409
410%files swat
411%defattr(-,root,root)
412%config(noreplace) %{_sysconfdir}/xinetd.d/swat
413%dir %{_datadir}/swat
414%{_datadir}/swat/include
415%{_datadir}/swat/images
416%{_datadir}/swat/lang
417%{_sbindir}/swat
418%{_mandir}/man8/swat.8*
419
420##########
421
422%files client
423%defattr(-,root,root)
424/sbin/mount.smb
425/sbin/mount.smbfs
426/sbin/mount.cifs
427/sbin/umount.cifs
428
429%{_bindir}/rpcclient
430%{_bindir}/smbcacls
431%{_bindir}/smbmount
432%{_bindir}/smbmnt
433%{_bindir}/smbumount
434%{_bindir}/findsmb
435%{_bindir}/smbcquotas
436%{_bindir}/nmblookup
437%{_bindir}/smbget
438%{_bindir}/smbclient
439%{_bindir}/smbprint
440%{_bindir}/smbspool
441%{_bindir}/smbtar
442%{_bindir}/net
443%{_bindir}/smbtree
444
445%{_mandir}/man8/smbmnt.8*
446%{_mandir}/man8/smbmount.8*
447%{_mandir}/man8/smbumount.8*
448%{_mandir}/man8/mount.cifs.8.*
449%{_mandir}/man8/umount.cifs.8.*
450%{_mandir}/man8/smbspool.8*
451%{_mandir}/man1/smbget.1*
452%{_mandir}/man5/smbgetrc.5*
453%{_mandir}/man1/findsmb.1*
454%{_mandir}/man1/nmblookup.1*
455%{_mandir}/man1/rpcclient.1*
456%{_mandir}/man1/smbcacls.1*
457%{_mandir}/man1/smbclient.1*
458%{_mandir}/man1/smbtar.1*
459%{_mandir}/man1/smbtree.1*
460%{_mandir}/man8/net.8*
461%{_mandir}/man1/smbcquotas.1*
462
463##########
464
465%files common
466%defattr(-,root,root)
467%dir %{_sysconfdir}/samba
468%config(noreplace) %{_sysconfdir}/samba/smb.conf
469%config(noreplace) %{_sysconfdir}/samba/lmhosts
470
471%attr(755,root,root) /%{_lib}/libnss_wins.so*
472%attr(755,root,root) /%{_lib}/libnss_winbind.so*
473%attr(755,root,root) /%{_lib}/security/pam_winbind.so
474%attr(755,root,root) /%{_lib}/security/pam_smbpass.so
475
476%{_includedir}/libsmbclient.h
477%{_libdir}/libsmbclient.*
478%{_includedir}/libmsrpc.h
479%{_libdir}/libmsrpc.*
480%{_includedir}/smb_share_modes.h
481%{_libdir}/libsmbsharemodes.*
482
483%{_libdir}/samba/*.dat
484%{_libdir}/samba/*.msg
485%{_libdir}/samba/charset/*.so
486
487%{_bindir}/testparm
488%{_bindir}/smbpasswd
489%{_bindir}/profiles
490
491%{_mandir}/man1/profiles.1*
492%{_mandir}/man1/testparm.1*
493%{_mandir}/man5/smb.conf.5*
494%{_mandir}/man5/lmhosts.5*
495%{_mandir}/man8/smbpasswd.8*
496%{_mandir}/man7/libsmbclient.7*
497%{_mandir}/man7/pam_winbind.7*
498
499%changelog
500* Fri Jan 16 2004 Gerald (Jerry) Carter <jerry@samba,org>
501- Removed ChangeLog entries since they are kept in CVS
502
503
504
Note: See TracBrowser for help on using the repository browser.