summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/Fedora/samba.spec.tmpl208
-rw-r--r--packaging/Fedora/swat (renamed from packaging/Fedora/samba.xinetd)0
2 files changed, 120 insertions, 88 deletions
diff --git a/packaging/Fedora/samba.spec.tmpl b/packaging/Fedora/samba.spec.tmpl
index 4f4299470b..9afd923808 100644
--- a/packaging/Fedora/samba.spec.tmpl
+++ b/packaging/Fedora/samba.spec.tmpl
@@ -1,19 +1,19 @@
%define initdir %{_sysconfdir}/rc.d/init.d
%define auth %(test -f /etc/pam.d/system-auth && echo /etc/pam.d/system-auth || echo)
-Summary: The Samba SMB server.
+Summary: Samba SMB client and server
+Vendor: Samba Team
+Packager: Samba Team <samba@samba.org>
Name: samba
Version: PVERSION
Release: PRELEASE
-License: GNU GPL Version 2
+License: GNU GPL version 2
Group: System Environment/Daemons
URL: http://www.samba.org/
-Source: ftp://www.samba.org/pub/samba/%{name}-%{version}.tar.bz2
-
-# Red Hat specific replacement-files
+Source: samba-%{version}.tar.gz
Source1: samba.log
-Source2: samba.xinetd
+Source3: swat
Source4: samba.sysconfig
Source5: smb.init
Source6: winbind.init
@@ -25,18 +25,17 @@ Source10: smb.conf
# Don't depend on Net::LDAP
Source999: filter-requires-samba.sh
-# generic patches
-
-Requires: pam >= 0.64 %{auth} samba-common = %{version}
-Requires: logrotate >= 3.4 initscripts >= 5.54-1
+Requires: pam >= 0.64 %{auth} samba-common = %{version}
+Requires: logrotate >= 3.4 initscripts >= 5.54-1
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Prereq: /sbin/chkconfig /bin/mktemp /usr/bin/killall
-Prereq: fileutils sed /etc/init.d
+Prereq: fileutils sed /etc/init.d
BuildRequires: pam-devel, readline-devel, ncurses-devel, fileutils, libacl-devel, openldap-devel, krb5-devel, cups-devel
+Provides: samba = %{version}
+Obsoletes: samba-common, samba-client, samba-swat
-
-# Working around perl dependency problem from docs
-%define __perl_requires %{SOURCE999}
+BuildRoot: %{_tmppath}/%{name}-%{version}-root
+Prefix: /usr
%description
Samba is the protocol by which a lot of PC-related machines share
@@ -49,6 +48,7 @@ SMB (sometimes called "Lan Manager") clients. Samba uses NetBIOS over
TCP/IP (NetBT) protocols and does NOT need the NetBEUI (Microsoft Raw
NetBIOS frame) protocol.
+
%package client
Summary: Samba (SMB) client programs.
Group: Applications/System
@@ -60,6 +60,7 @@ The samba-client package provides some SMB clients to compliment the
built-in SMB filesystem in Linux. These clients allow access of SMB
shares and printing to SMB printers.
+
%package common
Summary: Files used by both Samba servers and clients.
Group: Applications/System
@@ -68,6 +69,7 @@ Group: Applications/System
Samba-common provides files necessary for both the server and client
packages of Samba.
+
%package swat
Summary: The Samba SMB server configuration program.
Group: Applications/System
@@ -78,6 +80,7 @@ The samba-swat package includes the new SWAT (Samba Web Administration
Tool), for remotely managing Samba's smb.conf file using your favorite
Web browser.
+
%prep
%setup -q
@@ -88,134 +91,166 @@ cp %{SOURCE7} packaging/Fedora/
cp %{SOURCE8} packaging/Fedora/winbind.init
%build
-
cd source
%ifarch i386 sparc
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
%endif
%ifarch ia64
libtoolize --copy --force # get it to recognize IA-64
-autoheader
+autoheader
autoconf
EXTRA="-D_LARGEFILE64_SOURCE"
%endif
## run autogen if missing the configure script
if [ ! -f "configure" ]; then
- ./autogen.sh
+ ./autogen.sh
fi
-CFLAGS="$RPM_OPT_FLAGS" ./configure \
+CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
--prefix=%{_prefix} \
--localstatedir=/var \
- --sysconfdir=/etc \
+ --with-configdir=%{_sysconfdir}/samba \
+ --with-libdir=%{_libdir}/samba \
+ --with-lockdir=/var/cache/samba \
+ --with-logfilebase=/var/log/samba \
+ --with-mandir=%{_mandir} \
+ --with-piddir=/var/run \
--with-privatedir=%{_sysconfdir}/samba \
- --with-fhs \
- --with-quotas \
- --with-smbmount \
- --with-pam \
+ --with-sambabook=%{_datadir}/swat/using_samba \
+ --with-swatdir=%{_datadir}/swat \
+ --enable-cups \
+ --with-acl-support \
+ --with-ads \
+ --with-automount \
+ --with-fhs \
--with-pam_smbpass \
- --with-syslog \
- --with-utmp \
- --with-sambabook=%{_datadir}/swat/using_samba \
- --with-swatdir=%{_datadir}/swat \
--with-libsmbclient \
- --with-acl-support \
+ --with-libsmbsharemodes \
+ --without-smbwrapper \
+ --with-pam \
+ --with-quotas \
--with-shared-modules=idmap_rid \
- --enable-cups=yes
+ --with-smbmount \
+ --with-syslog \
+ --with-utmp
+
make showlayout
-make proto
-make %{?_smp_mflags} all modules nsswitch/libnss_wins.so
+
+make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" proto pch
+
+make CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" %{?_smp_mflags} \
+ all modules pam_smbpass
## build the cifs fs mount helper
-gcc -o mount.cifs $RPM_OPT_FLAGS -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE client/mount.cifs.c
-gcc -o umount.cifs $RPM_OPT_FLAGS -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE client/umount.cifs.c
+cd client
+gcc -o mount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE mount.cifs.c
+gcc -o umount.cifs $RPM_OPT_FLAGS -D_GNU_SOURCE -Wall -D_GNU_SOURCE -D_LARGEFILE64_SOURCE umount.cifs.c
+cd ..
+# Remove some permission bits to avoid to many dependencies
+cd ..
+find examples docs -type f | xargs -r chmod -x
%install
+# Clean up in case there is trash left from a previous build
rm -rf $RPM_BUILD_ROOT
+# Create the target build directory hierarchy
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/{help,include,using_samba/{figs,gifsa}}
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/swat/using_samba
+mkdir -p $RPM_BUILD_ROOT%{_includedir}
+mkdir -p $RPM_BUILD_ROOT%{_initrddir}
+mkdir -p $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
+mkdir -p $RPM_BUILD_ROOT%{_libdir}/samba/{auth,charset,idmap,vfs,pdb}
+mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
+mkdir -p $RPM_BUILD_ROOT%{_mandir}
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/{bin,sbin}
+mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib
mkdir -p $RPM_BUILD_ROOT/sbin
-mkdir -p $RPM_BUILD_ROOT/usr/{sbin,bin}
-mkdir -p $RPM_BUILD_ROOT/%{initdir}
-mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{pam.d,logrotate.d}
-mkdir -p $RPM_BUILD_ROOT/var/{log,spool,lib}/samba
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/swat/using_samba
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/samba/codepages
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{logrotate.d,pam.d,samba}
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{pam.d,logrotate.d}
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{samba,sysconfig}
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
+mkdir -p $RPM_BUILD_ROOT/var/cache/samba/winbindd_privileged
+mkdir -p $RPM_BUILD_ROOT/var/{log,run/winbindd,spool}/samba
cd source
-
make DESTDIR=$RPM_BUILD_ROOT \
- install
-
+ install
cd ..
-# Install other stuff
-install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
-install -m644 %{SOURCE9} $RPM_BUILD_ROOT/etc/samba/smbusers
-install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
-install -m644 %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/samba
-install -m644 %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/samba
-install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
-install -m755 source/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
-install -m755 source/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
-
-install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
-install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
-ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
-ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
-
-ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
-## Samba's Makefile is breaking this currently. Remove it and set our own
-/bin/rm -f $RPM_BUILD_ROOT/sbin/mount.smbfs
-ln -s ../usr/bin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
-
-echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
-
-
# pam_smbpass
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
-mv source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
+cp source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
-# winbind
-mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
+# NSS & PAM winbind support
install -m 755 source/nsswitch/pam_winbind.so $RPM_BUILD_ROOT/%{_lib}/security/pam_winbind.so
install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so
install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_lib}/libnss_wins.so
-( cd $RPM_BUILD_ROOT/%{_lib};
+( cd $RPM_BUILD_ROOT/%{_lib};
ln -sf libnss_winbind.so libnss_winbind.so.2;
ln -sf libnss_wins.so libnss_wins.so.2 )
-# libsmbclient
-
# make install puts libsmbclient.so in the wrong place on x86_64
-rm -f $RPM_BUILD_ROOT/usr/lib || true
-mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
+rm -f $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.so $RPM_BUILD_ROOT/usr/lib*/samba/libsmbclient.a || true
install -m 755 source/bin/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so
install -m 755 source/bin/libsmbclient.a $RPM_BUILD_ROOT%{_libdir}/libsmbclient.a
install -m 644 source/include/libsmbclient.h $RPM_BUILD_ROOT%{_includedir}
-rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libsmbclient.*
+ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT%{_libdir}/libsmbclient.so.0
+if [ %{_libdir} == /usr/lib64 ];then
+ ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT/usr/lib/libsmbclient.so.0
+ ln -s %{_libdir}/libsmbclient.so $RPM_BUILD_ROOT/usr/lib/libsmbclient.so
+fi
# make install puts libmsrpc.so in the wrong place on x86_64
-rm -f $RPM_BUILD_ROOT/usr/lib || true
-mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
install -m 755 source/bin/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so
install -m 755 source/bin/libmsrpc.a $RPM_BUILD_ROOT%{_libdir}/libmsrpc.a
install -m 644 source/include/libmsrpc.h $RPM_BUILD_ROOT%{_includedir}
rm -f $RPM_BUILD_ROOT%{_libdir}/samba/libmsrpc.*
+ln -s /%{_libdir}/libmsrpc.so $RPM_BUILD_ROOT%{_libdir}/libmsrpc.so.0
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d
-install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
+# Install pam_smbpass.so
+install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_lib}/security/pam_smbpass.so
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+# we need a symlink for mount to recognise the smb and smbfs filesystem types
+ln -sf %{_prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smbfs
+ln -sf %{_prefix}/sbin/smbmount $RPM_BUILD_ROOT/sbin/mount.smb
+
+# Install the miscellany
+echo 127.0.0.1 localhost > $RPM_BUILD_ROOT%{_sysconfdir}/samba/lmhosts
+
+install -m644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/samba
+install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/swat
install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/samba
+install -m755 %{SOURCE5} $RPM_BUILD_ROOT%{initdir}/smb
+install -m755 %{SOURCE6} $RPM_BUILD_ROOT%{initdir}/winbind
+install -m644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
+install -m755 %{SOURCE8} $RPM_BUILD_ROOT%{_bindir}
+install -m644 %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
+install -m644 %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/samba/smb.conf
+install -m755 source/client/mount.cifs $RPM_BUILD_ROOT/sbin/mount.cifs
+install -m755 source/client/umount.cifs $RPM_BUILD_ROOT/sbin/umount.cifs
+install -m755 source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
+
+ln -s ../..%{initdir}/smb $RPM_BUILD_ROOT%{_sbindir}/samba
+ln -s ../..%{initdir}/winbind $RPM_BUILD_ROOT%{_sbindir}/winbind
+
+# Remove "*.old" files
+find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \;
+
+## don't duplicate the docs. These are installed by/with SWAT
+rm -rf docs/htmldocs
+rm -rf docs/manpages
+( cd docs; ln -s %{_prefix}/share/swat/help htmldocs )
##
## Clean out man pages for tools not installed here
##
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/log2pcap.1*
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/smbsh.1*
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/vfstest.1*
+rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vfstest.1*
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -292,8 +327,10 @@ fi
%attr(755,root,root) %config %{initdir}/smb
%config(noreplace) %{_sysconfdir}/logrotate.d/samba
%config(noreplace) %{_sysconfdir}/pam.d/samba
+%{_sysconfdir}/samba/samba.xinetd
%{_mandir}/man1/smbcontrol.1*
%{_mandir}/man1/smbstatus.1*
+%{_mandir}/man1/vfstest.1*
%{_mandir}/man5/smbpasswd.5*
%{_mandir}/man7/samba.7*
%{_mandir}/man8/nmbd.8*
@@ -357,9 +394,6 @@ fi
%{_mandir}/man1/smbtar.1*
%{_mandir}/man1/smbtree.1*
%{_mandir}/man8/net.8*
-#%{_mandir}/ja/man1/smbtar.1*
-#%{_mandir}/ja/man1/smbclient.1*
-#%{_mandir}/ja/man1/nmblookup.1*
%files common
%defattr(-,root,root)
@@ -369,6 +403,8 @@ fi
%{_includedir}/libsmbclient.h
%{_libdir}/libsmbclient.a
%{_libdir}/libsmbclient.so
+%{_libdir}/libsmbclient.so.0
+%{_prefix}/lib/*
%{_includedir}/libmsrpc.h
%{_libdir}/libmsrpc.a
%{_libdir}/libmsrpc.so
@@ -386,12 +422,8 @@ fi
%{_sbindir}/winbindd
%config(noreplace) %{_sysconfdir}/samba/smb.conf
%config(noreplace) %{_sysconfdir}/samba/lmhosts
-%dir %{_datadir}/samba
-%dir %{_datadir}/samba/codepages
%dir %{_sysconfdir}/samba
%{initdir}/winbind
-# %{_datadir}/samba/codepages/*
-# %{_mandir}/man1/make_smbcodepage.1*
%{_mandir}/man1/ntlm_auth.1*
%{_mandir}/man1/profiles.1*
%{_mandir}/man1/smbcquotas.1*
diff --git a/packaging/Fedora/samba.xinetd b/packaging/Fedora/swat
index 8b62348dde..8b62348dde 100644
--- a/packaging/Fedora/samba.xinetd
+++ b/packaging/Fedora/swat