From: Hans-Peter J. <hp...@ur...> - 2004-03-04 13:22:04
|
Hi, just switched to 5.29 and susified(tm) smartd.initd.in a bit, based on 9.0: --- smartd.initd.in.orig 2004-03-04 10:46:44.000000000 +0100 +++ smartd.initd.in 2004-03-04 10:46:58.000000000 +0100 @@ -11,13 +11,15 @@ # # For SuSE and cousins ### BEGIN INIT INFO -# Provides: smartd -# Required-Start: -# Required-Stop: -# X-UnitedLinux-Should-Start: -# Default-Start: 1 2 3 5 -# Default-Stop: 0 6 -# Description: Start the smartd daemon +# Provides: smartd +# Required-Start: $syslog +# X-UnitedLinux-Should-Start: $sendmail +# Required-Stop: $syslog +# X-UnitedLinux-Should-Stop: +# Default-Start: 2 3 5 +# Default-Stop: +# Short-Description: Monitors disk and tape health via S.M.A.R.T. +# Description: Start S.M.A.R.T. disk and tape monitor. ### END INIT INFO # # This program is free software; you can redistribute it and/or modify it @@ -122,7 +124,10 @@ SMARTD_BIN=/usr/sbin/smartd test -x $SMARTD_BIN || exit 5 - + + # Existence of config file is optional + SMARTD_CONFIG=/etc/smartd.conf + # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status @@ -151,7 +156,7 @@ # considered a success. case "$1" in start) - echo -n "Starting smartd: " + echo -n "Starting smartd" ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. @@ -163,17 +168,22 @@ rc_status -v ;; stop) - echo -n "Shutting down smartd: " - killproc -QUIT $SMARTD_BIN + echo -n "Shutting down smartd" + killproc -TERM $SMARTD_BIN # Remember status and be verbose rc_status -v ;; - restart) + restart | force-reload) $0 stop - sleep 1 $0 start ;; + reload) + ## Like force-reload, but if daemon does not support + ## signaling, do nothing (!) + rc_failed 3 + rc_status -v + ;; status) echo -n "Checking for service smartd: " ## Check status with checkproc(8), if process is running @@ -189,9 +199,17 @@ checkproc $SMARTD_BIN rc_status -v ;; + probe) + ## Optional: Probe for the necessity of a reload, print out the + ## argument to this init script which is required for a reload. + ## Note: probe is not (yet) part of LSB (as of 1.2) + + test $SMARTD_CONFIG -nt /var/run/smartd.pid && echo reload + ;; *) - echo "Usage: smartd {start|stop|restart|status}" + echo "Usage: $0 {start|stop|status|restart|force-reload|reload|probe}" exit 1 + ;; esac rc_exit I did some (possibly useful for other) tweaks in the spec, too: --- smartmontools.spec.orig 2004-03-04 11:04:27.000000000 +0100 +++ smartmontools.spec 2004-03-04 13:55:55.000000000 +0100 @@ -26,6 +26,11 @@ Obsoletes: smartsuite Packager: Bruce Allen <sma...@li...> +%define redhat %(test ! -f /etc/redhat-release ; echo $?) +%define redhat %(test ! -f /etc/fedora-release ; echo $?) +%define mandrake %(test ! -f /etc/mandrake-release ; echo $?) +%define suse %(test ! -f /etc/SuSE-release ; echo $?) + # Source code can be found at: # http://ftp1.sourceforge.net/smartmontools/smartmontools-%{version}-%{release}.tar.gz @@ -206,11 +211,19 @@ rm -rf %{_buildroot} %makeinstall rm -f examplescripts/Makefile* + %if %{suse} + mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir} + mv $RPM_BUILD_ROOT/usr/share/doc/%{name}-%{version} $RPM_BUILD_ROOT%{_defaultdocdir}/%{name} + ln -s ../../etc/rc.d/init.d/smartd $RPM_BUILD_ROOT%{_sbindir}/rcsmartd + %endif %files %defattr(-,root,root) %attr(755,root,root) %{_sbindir}/smartd %attr(755,root,root) %{_sbindir}/smartctl + %if %{suse} + %attr(755,root,root) %{_sbindir}/rcsmartd + %endif %attr(755,root,root) /etc/rc.d/init.d/smartd %attr(644,root,root) %{_mandir}/man8/smartctl.8* %attr(644,root,root) %{_mandir}/man8/smartd.8* Would it be good enough for official inclusion? Pete |
From: Bruce A. <ba...@gr...> - 2004-03-04 20:44:05
|
Hi Pete, Both of these look OK, thank you. Could you please send me the modified smartmontools.spec and smartd.initd.in files as attachments? Stanislav, please let me know if you see any problems with this. The goal is to distribute an RPM and init scripts that are SuSE friendly if possible. Cheers, Bruce On Thu, 4 Mar 2004, Hans-Peter Jansen wrote: > Hi, > > just switched to 5.29 and susified(tm) smartd.initd.in > a bit, based on 9.0: > > --- smartd.initd.in.orig 2004-03-04 10:46:44.000000000 +0100 > +++ smartd.initd.in 2004-03-04 10:46:58.000000000 +0100 > @@ -11,13 +11,15 @@ > # > # For SuSE and cousins > ### BEGIN INIT INFO > -# Provides: smartd > -# Required-Start: > -# Required-Stop: > -# X-UnitedLinux-Should-Start: > -# Default-Start: 1 2 3 5 > -# Default-Stop: 0 6 > -# Description: Start the smartd daemon > +# Provides: smartd > +# Required-Start: $syslog > +# X-UnitedLinux-Should-Start: $sendmail > +# Required-Stop: $syslog > +# X-UnitedLinux-Should-Stop: > +# Default-Start: 2 3 5 > +# Default-Stop: > +# Short-Description: Monitors disk and tape health via S.M.A.R.T. > +# Description: Start S.M.A.R.T. disk and tape monitor. > ### END INIT INFO > # > # This program is free software; you can redistribute it and/or modify it > @@ -122,7 +124,10 @@ > > SMARTD_BIN=/usr/sbin/smartd > test -x $SMARTD_BIN || exit 5 > - > + > + # Existence of config file is optional > + SMARTD_CONFIG=/etc/smartd.conf > + > # Shell functions sourced from /etc/rc.status: > # rc_check check and set local and overall rc status > # rc_status check and set local and overall rc status > @@ -151,7 +156,7 @@ > # considered a success. > case "$1" in > start) > - echo -n "Starting smartd: " > + echo -n "Starting smartd" > ## Start daemon with startproc(8). If this fails > ## the echo return value is set appropriate. > > @@ -163,17 +168,22 @@ > rc_status -v > ;; > stop) > - echo -n "Shutting down smartd: " > - killproc -QUIT $SMARTD_BIN > + echo -n "Shutting down smartd" > + killproc -TERM $SMARTD_BIN > > # Remember status and be verbose > rc_status -v > ;; > - restart) > + restart | force-reload) > $0 stop > - sleep 1 > $0 start > ;; > + reload) > + ## Like force-reload, but if daemon does not support > + ## signaling, do nothing (!) > + rc_failed 3 > + rc_status -v > + ;; > status) > echo -n "Checking for service smartd: " > ## Check status with checkproc(8), if process is running > @@ -189,9 +199,17 @@ > checkproc $SMARTD_BIN > rc_status -v > ;; > + probe) > + ## Optional: Probe for the necessity of a reload, print out the > + ## argument to this init script which is required for a reload. > + ## Note: probe is not (yet) part of LSB (as of 1.2) > + > + test $SMARTD_CONFIG -nt /var/run/smartd.pid && echo reload > + ;; > *) > - echo "Usage: smartd {start|stop|restart|status}" > + echo "Usage: $0 {start|stop|status|restart|force-reload|reload|probe}" > exit 1 > + ;; > esac > > rc_exit > > > I did some (possibly useful for other) tweaks in the spec, too: > > --- smartmontools.spec.orig 2004-03-04 11:04:27.000000000 +0100 > +++ smartmontools.spec 2004-03-04 13:55:55.000000000 +0100 > @@ -26,6 +26,11 @@ > Obsoletes: smartsuite > Packager: Bruce Allen <sma...@li...> > > +%define redhat %(test ! -f /etc/redhat-release ; echo $?) > +%define redhat %(test ! -f /etc/fedora-release ; echo $?) > +%define mandrake %(test ! -f /etc/mandrake-release ; echo $?) > +%define suse %(test ! -f /etc/SuSE-release ; echo $?) > + > # Source code can be found at: > # http://ftp1.sourceforge.net/smartmontools/smartmontools-%{version}-%{release}.tar.gz > > @@ -206,11 +211,19 @@ > rm -rf %{_buildroot} > %makeinstall > rm -f examplescripts/Makefile* > + %if %{suse} > + mkdir -p $RPM_BUILD_ROOT%{_defaultdocdir} > + mv $RPM_BUILD_ROOT/usr/share/doc/%{name}-%{version} $RPM_BUILD_ROOT%{_defaultdocdir}/%{name} > + ln -s ../../etc/rc.d/init.d/smartd $RPM_BUILD_ROOT%{_sbindir}/rcsmartd > + %endif > > %files > %defattr(-,root,root) > %attr(755,root,root) %{_sbindir}/smartd > %attr(755,root,root) %{_sbindir}/smartctl > + %if %{suse} > + %attr(755,root,root) %{_sbindir}/rcsmartd > + %endif > %attr(755,root,root) /etc/rc.d/init.d/smartd > %attr(644,root,root) %{_mandir}/man8/smartctl.8* > %attr(644,root,root) %{_mandir}/man8/smartd.8* > > > Would it be good enough for official inclusion? > > Pete > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Smartmontools-support mailing list > Sma...@li... > https://lists.sourceforge.net/lists/listinfo/smartmontools-support > > |
From: Stanislav B. <sb...@su...> - 2004-03-05 11:04:51
|
V Čt, 04. 03. 2004 v 21:29, Bruce Allen píše: > Hi Pete, > > Both of these look OK, thank you. Could you please send me the modified > smartmontools.spec and smartd.initd.in files as attachments? > > Stanislav, please let me know if you see any problems with this. The goal > is to distribute an RPM and init scripts that are SuSE friendly if > possible. I didn't tested it, but it should work. SuSE contains some compatibility links, so there are few problems with Redhat scripts. But for perfect support in YaST, there are many differences in Redhat and SuSE startup scripts, so it's better to write it from scratch for each distribution. For example: Calling rc_status before returning and checkproc for checking, placing to /etc/init.d, not /etc/rc.d/init.d, default distribution policy is "off all by default, except crucial services". If you want to see SuSE-specific spec and init file, please download latest SuSE source RPM and look at it. On my opinion, maintaining scripts perfect for all distributions inside package is a nightmare. Generic Redhat script works nearly everywhere and distribution specific things are created by packagers. Note that Debian people can have different opinion. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SuSE CR, s. r. o. e-mail: sb...@su... Drahobejlova 27 tel: +420 296 542 382 190 00 Praha 9 fax: +420 296 542 374 Czech Republic http://www.suse.cz/ |
From: Guido G. <ag...@si...> - 2004-03-05 14:42:56
|
On Fri, Mar 05, 2004 at 11:50:09AM +0100, Stanislav Brabec wrote: > On my opinion, maintaining scripts perfect for all distributions inside > package is a nightmare. Generic Redhat script works nearly everywhere and all versions of a distribution > and distribution specific things are created by packagers. Note that > Debian people can have different opinion. Nope, your perfectly right. That's why I Debian uses it's own initscript in the package. Cheers, -- Guido |
From: Bruce A. <ba...@gr...> - 2004-03-05 16:26:13
|
> On Fri, Mar 05, 2004 at 11:50:09AM +0100, Stanislav Brabec wrote: > > On my opinion, maintaining scripts perfect for all distributions inside > > package is a nightmare. Generic Redhat script works nearly everywhere > and all versions of a distribution > > > and distribution specific things are created by packagers. Note that > > Debian people can have different opinion. > Nope, your perfectly right. That's why I Debian uses it's own initscript > in the package. I this that this is consistent with what we are doing. Most users get smartmontools with their distribution, or with an update to the distribution. For these users, it doesn't matter what's in smartmontools, since the distribution-maintainers will use their own init script. However for users who don't get/install smartmontools with their distribution, it's reasonable for us to have an init script in the tarball. Though it might be a good idea to check that the 'make install' target doesn't over-write an existing init script (if the user is updating to a new version of smartmontools). Cheers, Bruce |
From: Guido G. <ag...@si...> - 2004-03-05 19:00:19
|
On Fri, Mar 05, 2004 at 10:11:25AM -0600, Bruce Allen wrote: > However for users who don't get/install smartmontools with their > distribution, it's reasonable for us to have an init script in the > tarball. Though it might be a good idea to check that the 'make install' > target doesn't over-write an existing init script (if the user is updating > to a new version of smartmontools). That's why I think we should aim to move smartmontools to /usr/local in the future. Can't we add a something to the web page/release notes that the default installation location is going to change in .34 or something? -- Guido |