[samba] convert to systemd, fix epoch

Tom Callaway spot at fedoraproject.org
Tue Sep 20 15:22:55 UTC 2011


commit 3d3cbc8a73664be88a2ca7e9af5dfcde1778722d
Author: Tom "spot" Callaway <tcallawa at redhat.com>
Date:   Tue Sep 20 11:22:40 2011 -0400

    convert to systemd, fix epoch

 nmb.service     |   12 ++++
 samba.spec      |  153 ++++++++++++++++++++++++++++++-------------------------
 smb.service     |   13 +++++
 winbind.service |   13 +++++
 4 files changed, 122 insertions(+), 69 deletions(-)
---
diff --git a/nmb.service b/nmb.service
new file mode 100644
index 0000000..a2ecd22
--- /dev/null
+++ b/nmb.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Samba NMB Daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/run/nmbd.pid
+EnvironmentFile=-/etc/sysconfig/samba
+ExecStart=/usr/sbin/nmbd $NMBDOPTIONS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/samba.spec b/samba.spec
index de83a10..12aa100 100644
--- a/samba.spec
+++ b/samba.spec
@@ -1,4 +1,4 @@
-%define main_release 71
+%define main_release 72
 %define samba_version 3.6.0
 %define tdb_version 1.2.9
 %define talloc_version 2.0.5
@@ -10,9 +10,9 @@
 %define samba_source source3
 Summary: Server and Client software to interoperate with Windows machines
 Name: samba
-Epoch: 0
+Epoch: 1
 Version: %{samba_version}
-Release: %{samba_release}.1
+Release: %{samba_release}
 License: GPLv3+ and LGPLv3+
 Group: System Environment/Daemons
 URL: http://www.samba.org/
@@ -24,12 +24,12 @@ Source1: samba.log
 Source2: samba.xinetd
 Source3: swat.desktop
 Source4: samba.sysconfig
-Source5: smb.init
+Source5: smb.service
 Source6: samba.pamd
 Source7: smbprint
-Source8: winbind.init
+Source8: winbind.service
 Source9: smb.conf.default
-Source10: nmb.init
+Source10: nmb.service
 Source11: pam_winbind.conf
 
 # Don't depend on Net::LDAP
@@ -49,9 +49,11 @@ Patch200: samba-3.2.5-inotify.patch
 Requires(pre): samba-common = %{epoch}:%{samba_version}-%{release}
 Requires: pam >= 0:0.64
 Requires: logrotate >= 0:3.4
-BuildRoot: %{_tmppath}/%{name}-%{samba_version}-%{release}-root
-Requires(post): /sbin/chkconfig, /sbin/service
-Requires(preun): /sbin/chkconfig, /sbin/service
+Requires(post): systemd-sysv
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+BuildRequires: systemd-units
 BuildRequires: pam-devel, readline-devel, ncurses-devel, libacl-devel, krb5-devel, openldap-devel, openssl-devel, cups-devel, ctdb-devel
 BuildRequires: autoconf, gawk, popt-devel, gtk2-devel, libcap-devel, libuuid-devel, quota-devel
 BuildRequires: libtalloc-devel, libtdb-devel
@@ -89,8 +91,7 @@ Requires: libtdb >= 0:%{tdb_version}
 Requires: libtalloc >= 0:%{talloc_version}
 Group: Applications/System
 Requires(pre): /usr/sbin/groupadd
-Requires(post): /sbin/chkconfig, /sbin/service, coreutils
-Requires(preun): /sbin/chkconfig, /sbin/service
+Requires(post): coreutils
 
 %description common
 Samba-common provides files necessary for both the server and client
@@ -103,8 +104,7 @@ Group: Applications/System
 Requires: samba-common = %{epoch}:%{samba_version}-%{release}
 Requires: samba-winbind-clients = %{epoch}:%{samba_version}-%{release}
 Requires(pre): /usr/sbin/groupadd
-Requires(post): /sbin/chkconfig, /sbin/service, coreutils
-Requires(preun): /sbin/chkconfig, /sbin/service
+Requires(post): coreutils
 
 %description winbind
 The samba-winbind package provides the winbind daemon and some client tools.
@@ -197,7 +197,7 @@ cp packaging/RHEL/setup/smbusers packaging/Fedora/
 cp %{SOURCE5} packaging/Fedora/
 cp %{SOURCE6} packaging/Fedora/
 cp %{SOURCE7} packaging/Fedora/
-cp %{SOURCE8} packaging/Fedora/winbind.init
+cp %{SOURCE8} packaging/Fedora/winbind.service
 cp %{SOURCE9} packaging/Fedora/
 cp %{SOURCE10} packaging/Fedora/
 cp %{SOURCE11} packaging/Fedora/
@@ -286,11 +286,9 @@ make  debug2html smbfilter
 
 
 %install
-rm -rf $RPM_BUILD_ROOT
-
 mkdir -p $RPM_BUILD_ROOT/sbin
 mkdir -p $RPM_BUILD_ROOT/usr/{sbin,bin}
-mkdir -p $RPM_BUILD_ROOT/%{_initrddir}
+mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
 mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/{pam.d,logrotate.d,security}
 mkdir -p $RPM_BUILD_ROOT/%{_lib}/security
 mkdir -p $RPM_BUILD_ROOT/var/lib/samba
@@ -331,9 +329,9 @@ install -m644 packaging/Fedora/smb.conf.default $RPM_BUILD_ROOT%{_sysconfdir}/sa
 install -m755 %samba_source/script/mksmbpasswd.sh $RPM_BUILD_ROOT%{_bindir}
 install -m644 packaging/Fedora/smbusers $RPM_BUILD_ROOT%{_sysconfdir}/samba/smbusers
 install -m755 packaging/Fedora/smbprint $RPM_BUILD_ROOT%{_bindir}
-install -m755 packaging/Fedora/smb.init $RPM_BUILD_ROOT%{_initrddir}/smb
-install -m755 packaging/Fedora/nmb.init $RPM_BUILD_ROOT%{_initrddir}/nmb
-install -m755 packaging/Fedora/winbind.init $RPM_BUILD_ROOT%{_initrddir}/winbind
+install -m644 packaging/Fedora/smb.service $RPM_BUILD_ROOT%{_unitdir}/smb.service
+install -m644 packaging/Fedora/nmb.service $RPM_BUILD_ROOT%{_unitdir}/nmb.service
+install -m644 packaging/Fedora/winbind.service $RPM_BUILD_ROOT%{_unitdir}/winbind.service
 install -m644 packaging/Fedora/pam_winbind.conf $RPM_BUILD_ROOT%{_sysconfdir}/security
 #ln -s ../..%{_initrddir}/smb  $RPM_BUILD_ROOT%{_sbindir}/samba
 install -m644 packaging/Fedora/samba.pamd $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/samba
@@ -423,72 +421,95 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ldbmodify.1*
 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ldbsearch.1*
 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ldbrename.1*
 
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-#%pre
-
 %post
-/sbin/chkconfig --add smb
-/sbin/chkconfig --add nmb
-if [ "$1" -ge "1" ]; then
-    /sbin/service smb condrestart >/dev/null 2>&1 || :
-    /sbin/service nmb condrestart >/dev/null 2>&1 || :
+if [ $1 -eq 1 ] ; then 
+    # Initial installation 
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 fi
-exit 0
 
 %preun
-if [ $1 = 0 ] ; then
-    /sbin/service smb stop >/dev/null 2>&1 || :
-    /sbin/service nmb stop >/dev/null 2>&1 || :
-    /sbin/chkconfig --del smb
-    /sbin/chkconfig --del nmb
+if [ $1 -eq 0 ] ; then
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable smb.service > /dev/null 2>&1 || :
+    /bin/systemctl --no-reload disable nmb.service > /dev/null 2>&1 || :
+    /bin/systemctl stop smb.service > /dev/null 2>&1 || :
+    /bin/systemctl stop nmb.service > /dev/null 2>&1 || :
 fi
-exit 0
 
-#%postun
+%postun
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    /bin/systemctl try-restart smb.service >/dev/null 2>&1 || :
+    /bin/systemctl try-restart nmb.service >/dev/null 2>&1 || :
+fi
 
+%triggerun -- samba < 1:3.6.0-72
+# Save the current service runlevel info
+# User must manually run 
+#   systemd-sysv-convert --apply smb
+#   systemd-sysv-convert --apply nmb
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save smb >/dev/null 2>&1 ||:
+/usr/bin/systemd-sysv-convert --save nmb >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del smb >/dev/null 2>&1 || :
+/sbin/chkconfig --del nmb >/dev/null 2>&1 || :
+/bin/systemctl try-restart smb.service >/dev/null 2>&1 || :
+/bin/systemctl try-restart nmb.service >/dev/null 2>&1 || :
 
 %pre winbind
 /usr/sbin/groupadd -g 88 wbpriv >/dev/null 2>&1 || :
 
 %post winbind
-/sbin/chkconfig --add winbind
-
-if [ "$1" -ge "1" ]; then
-    /sbin/service winbind condrestart >/dev/null 2>&1 || :
+if [ $1 -eq 1 ] ; then 
+    # Initial installation 
+    /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 fi
 
-%post common
-/sbin/ldconfig
-
 %preun winbind
-if [ $1 = 0 ] ; then
-    /sbin/service winbind stop >/dev/null 2>&1 || :
-    /sbin/chkconfig --del winbind
+if [ $1 -eq 0 ] ; then
+    # Package removal, not upgrade
+    /bin/systemctl --no-reload disable winbind.service > /dev/null 2>&1 || :
+    /bin/systemctl stop winbind.service > /dev/null 2>&1 || :
 fi
-exit 0
 
-%postun common
-/sbin/ldconfig
+%postun winbind
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+    # Package upgrade, not uninstall
+    /bin/systemctl try-restart winbind.service >/dev/null 2>&1 || :
+fi
+
+%triggerun winbind -- samba-winbind < 1:3.6.0-72
+# Save the current service runlevel info
+# User must manually run
+#   systemd-sysv-convert --apply winbind
+# to migrate them to systemd targets
+/usr/bin/systemd-sysv-convert --save winbind >/dev/null 2>&1 ||:
+
+# Run these because the SysV package being removed won't do them
+/sbin/chkconfig --del winbind >/dev/null 2>&1 || :
+/bin/systemctl try-restart winbind.service >/dev/null 2>&1 || :
 
+%post common -p	/sbin/ldconfig
 
-%post -n libsmbclient
-/sbin/ldconfig
+%postun common -p /sbin/ldconfig
 
-%postun -n libsmbclient
-/sbin/ldconfig
+%post -n libsmbclient -p /sbin/ldconfig
+
+%postun -n libsmbclient -p /sbin/ldconfig
 
 %files
-%defattr(-,root,root)
 %{_sbindir}/smbd
 %{_sbindir}/nmbd
 %{_bindir}/mksmbpasswd.sh
 %{_bindir}/smbstatus
 %{_bindir}/eventlogadm
 %config(noreplace) %{_sysconfdir}/samba/smbusers
-%attr(755,root,root) %{_initrddir}/smb
-%attr(755,root,root) %{_initrddir}/nmb
+%{_unitdir}/smb.service
+%{_unitdir}/nmb.service
 %config(noreplace) %{_sysconfdir}/logrotate.d/samba
 %config(noreplace) %{_sysconfdir}/pam.d/samba
 %{_mandir}/man7/samba.7*
@@ -507,7 +528,6 @@ exit 0
 %doc examples/printing
 
 %files swat
-%defattr(-,root,root)
 %config(noreplace) %{_sysconfdir}/xinetd.d/swat
 %{_datadir}/swat
 %{_sbindir}/swat
@@ -515,7 +535,6 @@ exit 0
 %attr(755,root,root) %{_libdir}/samba/*.msg
 
 %files client
-%defattr(-,root,root)
 %{_bindir}/rpcclient
 %{_bindir}/smbcacls
 %{_bindir}/findsmb
@@ -541,7 +560,6 @@ exit 0
 %{_mandir}/man8/smbta-util.8*
 
 %files common
-%defattr(-,root,root)
 %attr(755,root,root) /%{_lib}/security/pam_smbpass.so
 %dir %{_libdir}/samba
 %{_libdir}/samba/lowcase.dat
@@ -585,7 +603,6 @@ exit 0
 %doc WHATSNEW.txt Roadmap
 
 %files winbind
-%defattr(-,root,root)
 %{_bindir}/ntlm_auth
 %{_bindir}/wbinfo
 %{_libdir}/samba/idmap
@@ -594,7 +611,7 @@ exit 0
 %ghost %dir /var/run/winbindd
 %attr(750,root,wbpriv) %dir /var/lib/samba/winbindd_privileged
 %config(noreplace) %{_sysconfdir}/security/pam_winbind.conf
-%{_initrddir}/winbind
+%{_unitdir}/winbind.service
 %{_mandir}/man1/ntlm_auth.1*
 %{_mandir}/man1/wbinfo.1*
 %{_mandir}/man5/pam_winbind.conf.5*
@@ -608,7 +625,6 @@ exit 0
 %{_libdir}/krb5/plugins/libkrb5/winbind_krb5_locator.so
 
 %files winbind-clients
-%defattr(-,root,root)
 %{_libdir}/libnss_winbind.so
 /%{_lib}/libnss_winbind.so.2
 %{_libdir}/libnss_wins.so
@@ -617,24 +633,20 @@ exit 0
 %attr(755,root,root) %{_libdir}/libwbclient.so.*
 
 %files winbind-devel
-%defattr(-,root,root)
 %{_includedir}/wbclient.h
 %{_libdir}/libwbclient.so
 %{_libdir}/pkgconfig/wbclient.pc
 
 %files doc
-%defattr(-,root,root)
 %doc docs/Samba3-Developers-Guide.pdf docs/Samba3-ByExample.pdf
 %doc docs/Samba3-HOWTO.pdf
 %doc docs/htmldocs
 
 %files -n libsmbclient
-%defattr(-,root,root)
 %attr(755,root,root) %{_libdir}/libsmbclient.so.*
 %attr(755,root,root) %{_libdir}/libsmbsharemodes.so.*
 
 %files -n libsmbclient-devel
-%defattr(-,root,root)
 %{_includedir}/libsmbclient.h
 %{_includedir}/smb_share_modes.h
 %{_libdir}/libsmbclient.so
@@ -644,7 +656,6 @@ exit 0
 %{_mandir}/man7/libsmbclient.7*
 
 %files domainjoin-gui
-%defattr(-,root,root)
 %{_sbindir}/netdomjoin-gui
 %dir %{_datadir}/pixmaps/samba
 %{_datadir}/pixmaps/samba/samba.ico
@@ -652,6 +663,10 @@ exit 0
 %{_datadir}/pixmaps/samba/logo-small.png
 
 %changelog
+* Tue Sep 20 2011 Tom Callaway <spot at fedoraproject.org> - 1:3.6.0-72
+- convert to systemd
+- restore epoch from f15
+
 * Sat Aug 13 2011 Guenther Deschner <gdeschner at redhat.com> - 3.6.0-71
 - Update to 3.6.0 final
 
diff --git a/smb.service b/smb.service
new file mode 100644
index 0000000..7d765db
--- /dev/null
+++ b/smb.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Samba SMB Daemon
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/run/smbd.pid
+LimitNOFILE=16384
+EnvironmentFile=-/etc/sysconfig/samba
+ExecStart=/usr/sbin/smbd $SMBDOPTIONS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/winbind.service b/winbind.service
new file mode 100644
index 0000000..91f9112
--- /dev/null
+++ b/winbind.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Samba Winbind Daemon
+Requires=smb.service nmb.service
+After=syslog.target network.target smb.service nmb.service
+
+[Service]
+Type=forking
+PIDFile=/run/winbindd.pid
+EnvironmentFile=-/etc/sysconfig/samba
+ExecStart=/usr/sbin/winbindd "$WINBINDOPTIONS"
+
+[Install]
+WantedBy=multi-user.target


More information about the scm-commits mailing list