+#
+# Fix or remove install.patch (seems systemd files are installed now)
Summary: The sar and iostat system monitoring commands
Summary(pl.UTF-8): Polecenia sar i iostat dla systemu Linux
Summary(ru.UTF-8): Содержит программы системного мониторинга sar и iostat
Summary(uk.UTF-8): Містить команди системного моніторингу sar та iostat
Summary(zh_CN.UTF-8): sar, iostat 等系统监视工具
+# use stable versions
+# Sysstat 11.5.x (development version).
+# Sysstat 11.4.x (stable version).
+# Sysstat 11.2.x (stable version).
Name: sysstat
-Version: 8.0.2
-Release: 1
+Version: 11.4.3
+Release: 3
License: GPL v2
Group: Applications/System
-Source0: http://perso.wanadoo.fr/sebastien.godard/%{name}-%{version}.tar.bz2
-# Source0-md5: 764916f221ae80852d85fc5d7b2d4dd8
-Source1: %{name}.crond
+Source0: http://pagesperso-orange.fr/sebastien.godard/%{name}-%{version}.tar.xz
+# Source0-md5: 76e449bb83a25d95355694338b5ace70
Source2: %{name}.init
-Source3: %{name}.sysconfig
-Patch0: %{name}-opt.patch
+Source3: crontab
+Patch1: install.patch
URL: http://perso.wanadoo.fr/sebastien.godard/
-BuildRequires: autoconf
+BuildRequires: autoconf >= 2.53
BuildRequires: automake
-BuildRequires: libtool
-BuildRequires: gettext-devel
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: gettext-tools
+BuildRequires: lm_sensors-devel
+BuildRequires: rpmbuild(macros) >= 1.671
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
Requires(post,preun): /sbin/chkconfig
-Requires: crondaemon
+Requires: cronjobs
Requires: rc-scripts
+Requires: systemd-units >= 38
+Requires: xz
+Obsoletes: iostat
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define _libexecdir %{_prefix}/lib/sa
+
%description
This package provides the sar and iostat commands for the Linux
operating system, similar to their traditional UNIX counterparts. They
моніторинг дискової, мережевої та іншої активності системи.
%description -l zh_CN.UTF-8
-本软件提供了用于Linux的系统监视工具, 可以监视磁盘, 网络以及 其他 IO
-的活动情况.
+本软件提供了用于Linux的系统监视工具, 可以监视磁盘, 网络以及 其他 IO 的活动情况.
%prep
%setup -q
-%patch0 -p1
+%patch1 -p1
%build
-%{__gettextize}
-%{__libtoolize}
%{__aclocal}
%{__autoconf}
-%configure
-
-%{__make} \
+%configure \
+ history=28 \
+ compressafter=31 \
+ cron_owner=root \
+ cron_interval=10 \
+ sa_lib_dir=%{_libexecdir} \
+ ZIP=%{_bindir}/xz \
+ --enable-install-cron \
+ --disable-stripping \
+ --with-systemdsystemunitdir=%{systemdunitdir}
+
+%{__sed} -i 's/SADC_OPTIONS=""/SADC_OPTIONS="-L"/' sysstat.sysconfig
+
+%{__make} -j1 \
CC="%{__cc}" \
- CFLAGS="%{rpmcflags}"
+ CFLAGS="%{rpmcflags}" \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/etc/{cron.d,rc.d/init.d,sysconfig},/var/log/sa}
+install -d $RPM_BUILD_ROOT{/etc/{cron.d,rc.d/init.d,sysconfig},/var/log/sa,%{systemdunitdir}}
-%{__make} install
+%{__make} install \
+ CHOWN=/bin/true \
+ SYSTEMCTL=/bin/true \
+ SYSTEMD_UNIT_DIR=%{systemdunitdir} \
+ DESTDIR=$RPM_BUILD_ROOT \
+ IGNORE_MAN_GROUP=y \
+ IGNORE_FILE_ATTRIBUTES=y
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/cron.d/sysstat
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/sysstat
-install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/sysstat
+cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/cron.d/%{name}
+
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}
%find_lang %{name}
-rm -rf $RPM_BUILD_ROOT%{_prefix}/doc/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/chkconfig --add sysstat
%service sysstat restart
+%systemd_post sysstat.service
%preun
if [ "$1" = "0" ]; then
%service sysstat stop
/sbin/chkconfig --del sysstat
fi
+%systemd_preun sysstat.service
+
+%postun
+%systemd_reload
+
+%triggerpostun -- %{name} < 10.1.6-1
+%systemd_trigger sysstat.service
+
+%triggerpostun -- %{name} < 11.2.0-2
+C=0
+for log in /var/log/sa/sa[0-9]*; do
+ if (LC_ALL=C %{_bindir}/sadf -C "$log" 2>&1 | grep -q "Current sysstat version cannot read the format of this file"); then
+ echo "Converting file $log to current format: "
+ if (%{_bindir}/sadf -c "$log" > "$log.migrate"); then
+ chown --reference "$log" "$log.migrate"
+ chmod --reference "$log" "$log.migrate"
+ mv "$log.migrate" "$log"
+ C=1
+ else
+ echo "$log MIGRATION FAILED." >&2
+ fi
+ fi
+done
+if [ "$C" -eq 1 ]; then
+ %service sysstat restart
+ %systemd_post sysstat.service
+fi
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc CHANGES CREDITS README *.sample TODO FAQ
-%attr(755,root,root) %{_bindir}/*
-%attr(755,root,root) %{_prefix}/lib/sa*
+%doc CHANGES CREDITS README.md FAQ
+%attr(755,root,root) %{_bindir}/cifsiostat
+%attr(755,root,root) %{_bindir}/iostat
+%attr(755,root,root) %{_bindir}/mpstat
+%attr(755,root,root) %{_bindir}/tapestat
+%attr(755,root,root) %{_bindir}/pidstat
+%attr(755,root,root) %{_bindir}/sadf
+%attr(755,root,root) %{_bindir}/sar
+%dir %{_libexecdir}
+%attr(755,root,root) %{_libexecdir}/sa1
+%attr(755,root,root) %{_libexecdir}/sa2
+%attr(755,root,root) %{_libexecdir}/sadc
+%attr(754,root,root) /etc/rc.d/init.d/sysstat
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/sysstat
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sysstat
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/sysstat.ioconf
+%{systemdunitdir}/sysstat.service
+%{systemdunitdir}/sysstat-collect.service
+%{systemdunitdir}/sysstat-collect.timer
+%{systemdunitdir}/sysstat-summary.service
+%{systemdunitdir}/sysstat-summary.timer
+%{_mandir}/man1/cifsiostat.1*
+%{_mandir}/man1/iostat.1*
+%{_mandir}/man1/mpstat.1*
+%{_mandir}/man1/tapestat.1*
+%{_mandir}/man1/pidstat.1*
+%{_mandir}/man1/sadf.1*
+%{_mandir}/man1/sar.1*
+%{_mandir}/man5/sysstat.5*
+%{_mandir}/man8/sa1.8*
+%{_mandir}/man8/sa2.8*
+%{_mandir}/man8/sadc.8*
%attr(750,root,root) %dir /var/log/sa
-%attr(754,root,root) /etc/rc.d/init.d/*
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/*
-%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/*
-%{_mandir}/man*/*