import sysstat-11.7.3-12.el8

i8c-beta changed/i8c-beta/sysstat-11.7.3-12.el8
MSVSphere Packaging Team 8 months ago
commit d82c5d38b1

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/sysstat-11.7.3.tar.xz

@ -0,0 +1 @@
d60fe0d4789cb377105c9a30f73e8e2158d3d288 SOURCES/sysstat-11.7.3.tar.xz

@ -0,0 +1,88 @@
From 5b5339d06c4f50730e5cc679e0854ce716f39117 Mon Sep 17 00:00:00 2001
From: Ondrej Dubaj <odubaj@redhat.com>
Date: Thu, 28 Feb 2019 15:29:08 +0100
Subject: [PATCH] ignoring autofs as real filesystem by counting number of
valid filesystems and getting all valid filesystems
---
count.c | 18 ++++++++++++++++--
rd_stats.c | 18 ++++++++++++++++--
2 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/count.c b/count.c
index 03469b0..6424baa 100644
--- a/count.c
+++ b/count.c
@@ -463,8 +463,8 @@ __nr_t get_usb_nr(void)
__nr_t get_filesystem_nr(void)
{
FILE *fp;
- char line[512], fs_name[MAX_FS_LEN], mountp[256];
- char *pos = 0;
+ char line[512], fs_name[MAX_FS_LEN], mountp[256], type[128];
+ char *pos = 0, *pos2 = 0;
__nr_t fs = 0;
int skip = 0, skip_next = 0;
struct statvfs buf;
@@ -491,6 +491,20 @@ __nr_t get_filesystem_nr(void)
if (pos == NULL)
continue;
+ /*
+ * Find second field separator position,
+ * read filesystem type,
+ * if filesystem type is autofs, skip it
+ */
+ memset(type, 0, sizeof(type));
+ pos2 = strchr(pos + 1, ' ');
+ if (pos2 == NULL)
+ continue;
+
+ sscanf(pos2 + 1, "%127s", type);
+ if(strcmp(type, "autofs") == 0)
+ continue;
+
/* Read filesystem name and mount point */
sscanf(line, "%127s", fs_name);
sscanf(pos + 1, "%255s", mountp);
diff --git a/rd_stats.c b/rd_stats.c
index 61dc958..43e082c 100644
--- a/rd_stats.c
+++ b/rd_stats.c
@@ -2464,10 +2464,10 @@ __nr_t read_bus_usb_dev(struct stats_pwr_usb *st_pwr_usb, __nr_t nr_alloc)
__nr_t read_filesystem(struct stats_filesystem *st_filesystem, __nr_t nr_alloc)
{
FILE *fp;
- char line[512], fs_name[128], mountp[256];
+ char line[512], fs_name[128], mountp[256], type[128];
int skip = 0, skip_next = 0;
char *pos = 0;
- __nr_t fs_read = 0;
+ __nr_t fs_read = 0, *pos2 = 0;
struct stats_filesystem *st_filesystem_i;
struct statvfs buf;
@@ -2491,6 +2491,20 @@ __nr_t read_filesystem(struct stats_filesystem *st_filesystem, __nr_t nr_alloc)
if (pos == NULL)
continue;
+ /*
+ * Find second field separator position,
+ * read filesystem type,
+ * if filesystem type is autofs, skip it
+ */
+ memset(type, 0, sizeof(type));
+ pos2 = strchr(pos + 1, ' ');
+ if (pos2 == NULL)
+ continue;
+
+ sscanf(pos2 + 1, "%127s", type);
+ if(strcmp(type, "autofs") == 0)
+ continue;
+
/* Read current filesystem name */
sscanf(line, "%127s", fs_name);
/*
--
2.30.1 (Apple Git-130)

@ -0,0 +1,63 @@
From 1f5949d4a6fcb33065dbb1d509f356db039998ed Mon Sep 17 00:00:00 2001
From: Sebastien GODARD <sysstat@users.noreply.github.com>
Date: Wed, 2 Sep 2020 19:04:04 +0200
Subject: [PATCH] Workaround for iowait being decremented
The iowait value reported by the kernel on NO_HZ systems can decrement
as a result of inaccurate iowait tracking. Waiting on IO can be first
accounted as iowait but then instead as idle.
Function get_per_cpu_interval() considers iowait going backwards between
two readings as a CPU coming back online and resets the iowait value of
the first reading to 0. If iowait is decremented only because of
inaccurate tracking, this causes that almost all time between the two
readings is incorrectly recognized by sar as being spent in iowait.
The patch updates the code in get_per_cpu_interval() to recognize this
situation. If the iowait value between two readings decremented but the
idle value did not then the code now considers it as a problem with the
iowait reporting and corrects the first value according to the second
reading. Otherwise, the code remains treating decremented iowait as a
CPU coming back online.
Fixes #14.
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
---
rd_stats.c | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/rd_stats.c b/rd_stats.c
index 56d42d00..fb93f23f 100644
--- a/rd_stats.c
+++ b/rd_stats.c
@@ -440,12 +440,26 @@ unsigned long long get_per_cpu_interval(struct stats_cpu *scc,
* value was greater than ULLONG_MAX - 0x7ffff (the counter probably
* overflew).
*/
+ if ((scc->cpu_iowait < scp->cpu_iowait) && (scp->cpu_iowait < (ULLONG_MAX - 0x7ffff))) {
+ /*
+ * The iowait value reported by the kernel can also decrement as
+ * a result of inaccurate iowait tracking. Waiting on IO can be
+ * first accounted as iowait but then instead as idle.
+ * Therefore if the idle value during the same period did not
+ * decrease then consider this is a problem with the iowait
+ * reporting and correct the previous value according to the new
+ * reading. Otherwise, treat this as CPU coming back online.
+ */
+ if ((scc->cpu_idle > scp->cpu_idle) || (scp->cpu_idle >= (ULLONG_MAX - 0x7ffff))) {
+ scp->cpu_iowait = scc->cpu_iowait;
+ }
+ else {
+ scp->cpu_iowait = 0;
+ }
+ }
if ((scc->cpu_idle < scp->cpu_idle) && (scp->cpu_idle < (ULLONG_MAX - 0x7ffff))) {
scp->cpu_idle = 0;
}
- if ((scc->cpu_iowait < scp->cpu_iowait) && (scp->cpu_iowait < (ULLONG_MAX - 0x7ffff))) {
- scp->cpu_iowait = 0;
- }
/*
* Don't take cpu_guest and cpu_guest_nice into account

@ -0,0 +1,28 @@
From 06e226703bee77e507f9f480807e230f677f0cb9 Mon Sep 17 00:00:00 2001
From: Sdrkun <shanzhikun@gmail.com>
Date: Tue, 28 Apr 2020 10:31:54 -0400
Subject: [PATCH] sa1: fix sar error when the directory var/log/sa was removed.
Signed-off-by: Sdrkun <shanzhikun@gmail.com>
Cherry-picked-by: Lukáš Zaoral <lzaoral@redhat.com>
Upstream-commit: 06e226703bee77e507f9f480807e230f677f0cb9
---
sa1.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/sa1.in b/sa1.in
index e908ad33..e9047d06 100644
--- a/sa1.in
+++ b/sa1.in
@@ -16,6 +16,7 @@
[ -r ${SYSCONFIG_DIR}/sysstat ] && . ${SYSCONFIG_DIR}/sysstat
[ -d ${SA_DIR} ] || SA_DIR=@SA_DIR@
+[ -d @SA_DIR@ ] || mkdir @SA_DIR@
if [ ${HISTORY} -gt 28 ]
then
--
2.43.0

@ -0,0 +1,101 @@
From 560d88cb5a16636acb0e350d6997fe915cc4253e Mon Sep 17 00:00:00 2001
From: Kyle Walker <kwalker@redhat.com>
Date: Wed, 30 Jan 2019 07:50:55 -0500
Subject: [PATCH] sadc: Add a -f flag to force fdatasync() use
For quite some time, the sadc utility has not used fdatasync() when writing
stat information to disk. This resulted in instances where data files could
be corrupted or entries lost if a system encountered a sudden reset
condition. This change adds a "-f" flag which can be used to bring back the
previous behaviour if end users require it.
Note, the fdatasync() lowers the likelihood of lost data, but does so at
the expense of performance within the write operation.
---
man/sadc.in | 8 +++++++-
sa.h | 2 ++
sadc.c | 13 ++++++++++++-
3 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/man/sadc.in b/man/sadc.in
index 2d754b71..ce8ee230 100644
--- a/man/sadc.in
+++ b/man/sadc.in
@@ -4,7 +4,7 @@ sadc \- System activity data collector.
.SH SYNOPSIS
.B @SA_LIB_DIR@/sadc [ -C
.I comment
-.B ] [ -D ] [ -F ] [ -L ] [ -V ] [ -S { DISK | INT | IPV6 | POWER | SNMP | XDISK | ALL | XALL [,...] } ] [
+.B ] [ -D ] [ -F ] [ -L ] [ -V ] [ -f ] [ -S { DISK | INT | IPV6 | POWER | SNMP | XDISK | ALL | XALL [,...] } ] [
.I interval
.B [
.I count
@@ -106,6 +106,12 @@ then it will be truncated. This may be useful for daily data files
created by an older version of
.B sadc
and whose format is no longer compatible with current one.
+.IP -f
+fdatasync() will be used to ensure data is written to disk. This differs
+from the normal operation in that a sudden system reset is less likely to
+result in the saDD datafiles being corrupted. However, this is at the
+expense of performance within the sadc process as forward progress will be
+blocked while data is written to underlying disk instead of just to cache.
.IP -L
.B sadc
will try to get an exclusive lock on the
diff --git a/sa.h b/sa.h
index 1cd0c3d9..d3236f7c 100644
--- a/sa.h
+++ b/sa.h
@@ -110,5 +110,6 @@
#define S_F_HUMAN_READ 0x01000000
#define S_F_ZERO_OMIT 0x02000000
+#define S_F_FDATASYNC 0x08000000
#define WANT_SINCE_BOOT(m) (((m) & S_F_SINCE_BOOT) == S_F_SINCE_BOOT)
#define WANT_SA_ROTAT(m) (((m) & S_F_SA_ROTAT) == S_F_SA_ROTAT)
@@ -138,5 +139,6 @@
#define PACK_VIEWS(m) (((m) & S_F_SVG_PACKED) == S_F_SVG_PACKED)
#define DISPLAY_HUMAN_READ(m) (((m) & S_F_HUMAN_READ) == S_F_HUMAN_READ)
+#define FDATASYNC(m) (((m) & S_F_FDATASYNC) == S_F_FDATASYNC)
#define AO_F_NULL 0x00000000
diff --git a/sadc.c b/sadc.c
index 826f4aed..139d490a 100644
--- a/sadc.c
+++ b/sadc.c
@@ -92,7 +92,7 @@ void usage(char *progname)
progname);
fprintf(stderr, _("Options are:\n"
- "[ -C <comment> ] [ -D ] [ -F ] [ -L ] [ -V ]\n"
+ "[ -C <comment> ] [ -D ] [ -F ] [ -L ] [ -V ] [ -f ]\n"
"[ -S { INT | DISK | IPV6 | POWER | SNMP | XDISK | ALL | XALL } ]\n"));
exit(1);
}
@@ -1109,6 +1109,13 @@ void rw_sa_stat_loop(long count, int stdfd, int ofd, char ofile[],
/* Flush data */
fflush(stdout);
+ if (FDATASYNC(flags)) {
+ /* If indicated, sync the data to media */
+ if (fdatasync(ofd) < 0) {
+ perror("fdatasync");
+ exit(4);
+ }
+ }
if (count > 0) {
count--;
@@ -1206,6 +1213,10 @@ int main(int argc, char **argv)
optz = 1;
}
+ else if (!strcmp(argv[opt], "-f")) {
+ flags |= S_F_FDATASYNC;
+ }
+
else if (!strcmp(argv[opt], "-C")) {
if (!argv[++opt]) {
usage(argv[0]);

@ -0,0 +1,40 @@
From ce90f916fee2a39eb914f8b6b349adb76d100f75 Mon Sep 17 00:00:00 2001
From: Sebastien GODARD <sysstat@users.noreply.github.com>
Date: Sat, 13 Apr 2019 18:44:29 +0200
Subject: [PATCH] sadf: Fix seg fault on empty data files
Trying to display XML or JSON data (with sadf -x/-j) from a data file
containing only RESTART records created a core dump.
This patch fixes that.
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
---
sadf.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/sadf.c b/sadf.c
index 2d2c39c..5d558d3 100644
--- a/sadf.c
+++ b/sadf.c
@@ -963,14 +963,15 @@ void logic1_display_loop(int ifd, struct file_activity *file_actlst, char *file,
(tm_start.use && (datecmp(loctime, &tm_start) < 0)) ||
(tm_end.use && (datecmp(loctime, &tm_end) >= 0))));
- /* Save the first stats collected. Used for example in next_slice() function */
- copy_structures(act, id_seq, record_hdr, 2, 0);
-
curr = 1;
cnt = count;
reset = TRUE;
if (!eosaf) {
+
+ /* Save the first stats collected. Used for example in next_slice() function */
+ copy_structures(act, id_seq, record_hdr, 2, 0);
+
do {
eosaf = read_next_sample(ifd, IGNORE_COMMENT | IGNORE_RESTART, curr,
file, &rtype, tab, file_magic, file_actlst,
--
2.31.1

@ -0,0 +1,31 @@
From c542c259ba9e71a5ade235dfbcde67ac8b510c4f Mon Sep 17 00:00:00 2001
From: Sebastien GODARD <sysstat@users.noreply.github.com>
Date: Fri, 19 Apr 2019 15:20:45 +0200
Subject: [PATCH] sar: Add missing %gnice CPU value for tickless CPU
A field (which should be displayed as 0.00) was missing in CPU
statistics displayed by "sar -u ALL" for tickless CPUs.
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
---
pr_stats.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pr_stats.c b/pr_stats.c
index 4fbd5d1..319630d 100644
--- a/pr_stats.c
+++ b/pr_stats.c
@@ -218,8 +218,8 @@ __print_funct_t print_cpu_stats(struct activity *a, int prev, int curr,
* %irq, %soft, %guest, %gnice.
*/
else if (DISPLAY_CPU_ALL(a->opt_flags)) {
- cprintf_pc(DISPLAY_UNIT(flags), 4, 9, 2,
- 0.0, 0.0, 0.0, 100.0);
+ cprintf_pc(DISPLAY_UNIT(flags), 5, 9, 2,
+ 0.0, 0.0, 0.0, 0.0, 100.0);
printf("\n");
}
continue;
--
2.30.1 (Apple Git-130)

@ -0,0 +1,26 @@
From 83dac62520afe3fa92b53393f438c9fb9c492525 Mon Sep 17 00:00:00 2001
From: Sebastien GODARD <sysstat@users.noreply.github.com>
Date: Sat, 6 Oct 2018 18:12:54 +0200
Subject: [PATCH] sar: Fix typo in manual page
Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
---
man/sar.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/man/sar.in b/man/sar.in
index c45ee54..925c5f5 100644
--- a/man/sar.in
+++ b/man/sar.in
@@ -373,7 +373,7 @@ The following values are displayed:
.B MBfsfree
.RS
.RS
-Total amount a free space in megabytes (including space available only to privileged user).
+Total amount of free space in megabytes (including space available only to privileged user).
.RE
.B MBfsused
--
2.31.1

@ -0,0 +1,43 @@
--- sa_common.c
+++ sa_common.c
@@ -1249,6 +1249,11 @@
/* Remap [unsigned] long fields */
d = gtypes_nr[0] - ftypes_nr[0];
if (d) {
+
+ if (ftypes_nr[0] * ULL_ALIGNMENT_WIDTH < ftypes_nr[0])
+ /* Overflow */
+ return;
+
memmove(((char *) ps) + gtypes_nr[0] * ULL_ALIGNMENT_WIDTH,
((char *) ps) + ftypes_nr[0] * ULL_ALIGNMENT_WIDTH,
st_size - ftypes_nr[0] * ULL_ALIGNMENT_WIDTH);
@@ -1260,7 +1265,13 @@
/* Remap [unsigned] int fields */
d = gtypes_nr[1] - ftypes_nr[1];
if (d) {
- memmove(((char *) ps) + gtypes_nr[0] * ULL_ALIGNMENT_WIDTH
+
+ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH +
+ ftypes_nr[1] * UL_ALIGNMENT_WIDTH < ftypes_nr[1])
+ /* Overflow */
+ return;
+
+ memmove(((char *) ps) + gtypes_nr[0] * ULL_ALIGNMENT_WIDTH
+ gtypes_nr[1] * UL_ALIGNMENT_WIDTH,
((char *) ps) + gtypes_nr[0] * ULL_ALIGNMENT_WIDTH
+ ftypes_nr[1] * UL_ALIGNMENT_WIDTH,
@@ -1275,6 +1286,13 @@
/* Remap possible fields (like strings of chars) following int fields */
d = gtypes_nr[2] - ftypes_nr[2];
if (d) {
+
+ if (gtypes_nr[0] * ULL_ALIGNMENT_WIDTH +
+ gtypes_nr[1] * UL_ALIGNMENT_WIDTH +
+ ftypes_nr[2] * U_ALIGNMENT_WIDTH < ftypes_nr[2])
+ /* Overflow */
+ return;
+
memmove(((char *) ps) + gtypes_nr[0] * ULL_ALIGNMENT_WIDTH
+ gtypes_nr[1] * UL_ALIGNMENT_WIDTH
+ gtypes_nr[2] * U_ALIGNMENT_WIDTH,

@ -0,0 +1,85 @@
From 9c4eaf150662ad40607923389d4519bc83b93540 Mon Sep 17 00:00:00 2001
From: Sebastien <seb@fedora-2.home>
Date: Sat, 15 Oct 2022 14:24:22 +0200
Subject: [PATCH] Fix size_t overflow in sa_common.c (GHSL-2022-074)
allocate_structures function located in sa_common.c insufficiently
checks bounds before arithmetic multiplication allowing for an
overflow in the size allocated for the buffer representing system
activities.
This patch checks that the post-multiplied value is not greater than
UINT_MAX.
Signed-off-by: Sebastien <seb@fedora-2.home>
---
common.c | 25 +++++++++++++++++++++++++
common.h | 2 ++
sa_common.c | 6 ++++++
3 files changed, 33 insertions(+)
diff --git a/common.c b/common.c
index 81c77624..1a84b052 100644
--- a/common.c
+++ b/common.c
@@ -1655,4 +1655,29 @@ int parse_values(char *strargv, unsigned char bitmap[], int max_val, const char
return 0;
}
+
+/*
+ ***************************************************************************
+ * Check if the multiplication of the 3 values may be greater than UINT_MAX.
+ *
+ * IN:
+ * @val1 First value.
+ * @val2 Second value.
+ * @val3 Third value.
+ ***************************************************************************
+ */
+void check_overflow(size_t val1, size_t val2, size_t val3)
+{
+ if ((unsigned long long) val1 *
+ (unsigned long long) val2 *
+ (unsigned long long) val3 > UINT_MAX) {
+#ifdef DEBUG
+ fprintf(stderr, "%s: Overflow detected (%llu). Aborting...\n",
+ __FUNCTION__,
+ (unsigned long long) val1 * (unsigned long long) val2 * (unsigned long long) val3);
+#endif
+ exit(4);
+ }
+}
+
#endif /* SOURCE_SADC undefined */
diff --git a/common.h b/common.h
index 55b6657d..e8ab98ab 100644
--- a/common.h
+++ b/common.h
@@ -260,6 +260,8 @@ int check_dir
(const char *, int);
#ifndef SOURCE_SADC
+void check_overflow
+ (size_t, size_t, size_t);
int count_bits
(void *, int);
int count_csvalues
diff --git a/sa_common.c b/sa_common.c
index 3699a840..b2cec4ad 100644
--- a/sa_common.c
+++ b/sa_common.c
@@ -459,7 +459,13 @@ void allocate_structures(struct activity *act[])
int i, j;
for (i = 0; i < NR_ACT; i++) {
+
if (act[i]->nr_ini > 0) {
+
+ /* Look for a possible overflow */
+ check_overflow((size_t) act[i]->msize, (size_t) act[i]->nr_ini,
+ (size_t) act[i]->nr2);
+
for (j = 0; j < 3; j++) {
SREALLOC(act[i]->buf[j], void,
(size_t) act[i]->msize * (size_t) act[i]->nr_ini * (size_t) act[i]->nr2);

@ -0,0 +1,23 @@
From 954ff2e2673cef48f0ed44668c466eab041db387 Mon Sep 17 00:00:00 2001
From: Pavel Kopylov <pkopylov@cloudlinux.com>
Date: Wed, 17 May 2023 11:33:45 +0200
Subject: [PATCH] Fix an overflow which is still possible for some values.
diff --git a/common.c b/common.c
index 583a0ca..6d73b1b 100644
--- a/common.c
+++ b/common.c
@@ -1639,9 +1639,11 @@ int parse_values(char *strargv, unsigned char bitmap[], int max_val, const char
*/
void check_overflow(size_t val1, size_t val2, size_t val3)
{
- if ((unsigned long long) val1 *
- (unsigned long long) val2 *
- (unsigned long long) val3 > UINT_MAX) {
+if ((val1 != 0) && (val2 != 0) && (val3 != 0) &&
+ (((unsigned long long)UINT_MAX / (unsigned long long)val1 <
+ (unsigned long long)val2) ||
+ ((unsigned long long)UINT_MAX / ((unsigned long long)val1 *
+ (unsigned long long)val2) < (unsigned long long)val3))) {
#ifdef DEBUG
fprintf(stderr, "%s: Overflow detected (%llu). Aborting...\n",
__FUNCTION__,

@ -0,0 +1,2 @@
# Color sysstat output
if ( "$?S_COLORS" == 0 ) setenv S_COLORS auto

@ -0,0 +1,2 @@
# Color sysstat output
export S_COLORS=${S_COLORS-auto}

@ -0,0 +1,586 @@
Summary: Collection of performance monitoring tools for Linux
Name: sysstat
Version: 11.7.3
Release: 12%{?dist}
License: GPLv2+
Group: Applications/System
URL: http://sebastien.godard.pagesperso-orange.fr/
Source: http://pagesperso-orange.fr/sebastien.godard/%{name}-%{version}.tar.xz
# Use colors in sysstat output
Source10: colorsysstat.csh
Source11: colorsysstat.sh
# Downstream patches
Patch01: CVE-2019-16167_memory-corruption-due-to-an-integer-overflow.patch
Patch02: 0001-ignoring-autofs-as-real-filesystem-by-counting-numbe.patch
Patch03: 0001-sar-Add-missing-gnice-CPU-value-for-tickless-CPU.patch
Patch04: 0001-sadf-Fix-seg-fault-on-empty-data-files.patch
Patch05: 0001-sar-Fix-typo-in-manual-page.patch
Patch06: CVE-2022-39377-arithmetic-overflow-in-allocate-structures-on-32-bit-systems.patch
Patch07: 0001-sadc-Add-a-f-flag-to-force-fdatasync-use.patch
Patch08: 0001-mpstat-incorrect-cpu-usage-iowait.patch
Patch09: CVE-2023-33204.patch
Patch10: 0001-sa1-fix-sar-error-when-the-directory-var-log-sa-was-.patch
BuildRequires: gettext, lm_sensors-devel, systemd
Requires: findutils, xz
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%description
The sysstat package contains the sar, sadf, mpstat, iostat, tapestat,
pidstat, cifsiostat and sa tools for Linux.
The sar command collects and reports system activity information.
The information collected by sar can be saved in a file in a binary
format for future inspection. The statistics reported by sar concern
I/O transfer rates, paging activity, process-related activities,
interrupts, network activity, memory and swap space utilization, CPU
utilization, kernel activities and TTY statistics, among others. Both
UP and SMP machines are fully supported.
The sadf command may be used to display data collected by sar in
various formats (CSV, XML, etc.).
The iostat command reports CPU utilization and I/O statistics for disks.
The tapestat command reports statistics for tapes connected to the system.
The mpstat command reports global and per-processor statistics.
The pidstat command reports statistics for Linux tasks (processes).
The cifsiostat command reports I/O statistics for CIFS file systems.
%prep
%setup -q
%patch01 -p0
%patch02 -p1
%patch03 -p1
%patch04 -p1
%patch05 -p1
%patch06 -p1
%patch07 -p1
%patch08 -p1
%patch09 -p1
%patch10 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld"
%configure \
--enable-install-cron \
--enable-copy-only \
--disable-file-attr \
--disable-stripping \
--docdir=%{_pkgdocdir} \
sadc_options='-S DISK' \
history=28 \
compressafter=31
make %{?_smp_mflags}
%install
%make_install
%find_lang %{name}
# Colored sysstat output
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
install -p -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/profile.d
install -p -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/profile.d
%post
%systemd_post sysstat.service sysstat-collect.timer sysstat-summary.timer
%preun
%systemd_preun sysstat.service sysstat-collect.timer sysstat-summary.timer
if [[ $1 -eq 0 ]]; then
# Remove sa logs if removing sysstat completely
rm -rf %{_localstatedir}/log/sa/*
fi
%postun
%systemd_postun sysstat.service sysstat-collect.timer sysstat-summary.timer
%files -f %{name}.lang
%doc CHANGES COPYING CREDITS FAQ.md README.md %{name}-%{version}.lsm
%config(noreplace) %{_sysconfdir}/sysconfig/sysstat
%config(noreplace) %{_sysconfdir}/sysconfig/sysstat.ioconf
%config(noreplace) %{_sysconfdir}/profile.d/*
%{_bindir}/*
%{_libdir}/sa
%{_unitdir}/sysstat*
%{_mandir}/man*/*
%{_localstatedir}/log/sa
%changelog
* Fri Mar 29 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 11.7.3-12
- Rebuilt for MSVSphere 8.10 beta
* Wed Dec 13 2023 Lukáš Zaoral <lzaoral@redhat.com> - 11.7.3-12
- fix sar error when the directory /var/log/sa was removed (RHEL-19301)
* Fri Jul 07 2023 psimovec <psimovec@redhat.com> - 11.7.3-11
- fix the arithmetic overflow in allocate_structures() that is still possible on some 32 bit systems (CVE-2023-33204)
* Thu Mar 16 2023 Lukáš Zaoral <lzaoral@redhat.com> - 11.7.3-10
- Fix incorrect CPU usage on ALL CPU field for iowait in mpstat (#2178863)
* Wed Dec 14 2022 Lukáš Zaoral <lzaoral@redhat.com> - 11.7.3-9
- add -f flag to force fdatasync() after sa file update (#2153192)
* Thu Nov 10 2022 Lukáš Zaoral <lzaoral@redhat.com> - 11.7.3-8
- arithmetic overflow in allocate_structures() on 32 bit systems (CVE-2022-39377)
* Mon Nov 29 2021 <msekleta@redhat.com> - 11.7.3-7
- Don't trigger autofs mounts when running sadc (#2000910)
- sar: Add missing %gnice CPU value for tickless CPU (#2000916)
- sadf: Fix seg fault on empty data files (#1910841)
- sar: Fix typo in manual page (#1877836)
* Fri Jul 10 2020 Jan Macku <jamacku@redhat.com> - 11.7.3-5
- Rebuild
* Fri Apr 17 2020 Jan Macku <jamacku@redhat.com> - 11.7.3-4
- Package onboarded to gating
* Thu Feb 20 2020 Jan Macku <jamacku@redhat.com> - 11.7.3-3
- Fix memory corruption bug due to integer overflow (#1790608)
* Thu Oct 25 2018 Michal Sekletár <msekleta@redhat.com> - 11.7.3-2
- sysstat's buildsystem doesn't really use LDFLAGS, we have to merge CFLAGS and LDFLAGS to get binaries with full RELRO (#1624177)
* Thu Apr 19 2018 Michal Sekletar <msekleta@redhat.com> - 11.7.3-1
- rebase to 11.7.3 (#1508436)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 11.6.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Jan 22 2018 Peter Schiffer <pschiffe@redhat.com> - 11.6.2-1
- related: #1508436
updated to 11.6.2
* Fri Nov 24 2017 Peter Schiffer <pschiffe@redhat.com> - 11.6.1-1
- related: #1508436, #1439237
updated to 11.6.1
* Wed Sep 13 2017 Peter Schiffer <pschiffe@redhat.com> - 11.6.0-1
- resolves: #1481488
updated to 11.6.0
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 11.5.7-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 11.5.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Jul 14 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.7-2
- related: #1467891
rebuild
* Thu Jul 13 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.7-1
- resolves: #1467891
updated to 11.5.7
* Wed May 17 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.6-1
- resolves: #1450710
updated to 11.5.6
* Tue Mar 28 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.5-1
- resolves: #1427351
updated to 11.5.5
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 11.5.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Jan 30 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.4-1
- resolves: #1413365
updated to 11.5.4
* Tue Jan 3 2017 Peter Schiffer <pschiffe@redhat.com> - 11.5.3-1
- resolves: #1402178
updated to 11.5.3
* Mon Nov 28 2016 Peter Schiffer <pschiffe@redhat.com> - 11.5.2-1
- resolves: #1392729
updated to 11.5.2
* Tue Sep 27 2016 Peter Schiffer <pschiffe@redhat.com> - 11.5.1-1
- updated to 11.5.1
* Thu Sep 1 2016 Peter Schiffer <pschiffe@redhat.com> - 11.4.0-1
- resolves: #1370820
updated to 11.4.0
* Thu Jun 30 2016 Peter Schiffer <pschiffe@redhat.com> - 11.3.5-1
- updated to 11.3.5
* Tue May 24 2016 Peter Schiffer <pschiffe@redhat.com> - 11.3.4-1
- resolves: #1336188
updated to 11.3.4
* Sat Apr 30 2016 Peter Schiffer <pschiffe@redhat.com> - 11.3.3-1
- updated to 11.3.3
* Thu Mar 31 2016 Peter Schiffer <pschiffe@redhat.com> - 11.3.2-1
- resolves: #1317717
updated to 11.3.2
* Mon Feb 29 2016 Peter Schiffer <pschiffe@redhat.com> - 11.3.1-1
- resolves: #1310920
updated to 11.3.1
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 11.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jan 20 2016 Peter Schiffer <pschiffe@redhat.com> - 11.2.0-1
- resolves: #1296762
updated to 11.2.0
* Mon Nov 2 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.8-1
- resolves: #1274940
updated to 11.1.8
* Fri Oct 2 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.7-1
- resolves: #1264895
updated to 11.1.7
- added colors to sysstat output
* Mon Aug 31 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.6-1
- resolves: #1256784
updated to 11.1.6
* Mon Jun 29 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.5-1
- resolves: #1231242
updated to 11.1.5
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 11.1.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Apr 10 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.4-1
- resolves: #1210532
updated to 11.1.4
* Mon Mar 02 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.3-1
- resolves: #1193434
updated to 11.1.3
* Thu Jan 22 2015 Dan Horák <dan[at]danny.cz> - 11.1.2-3
- fix 64-bit builds on non-x86 arches
* Thu Jan 15 2015 Peter Schiffer <pschiffe@redhat.com> - 11.1.2-2
- cleaned .spec file
* Mon Oct 20 2014 Peter Schiffer <pschiffe@redhat.com> - 11.1.2-1
- resolves: #1154601
updated to 11.1.2
* Thu Sep 4 2014 Peter Schiffer <pschiffe@redhat.com> - 11.1.1-1
- resolves: #1138294
updated to 11.1.1
* Thu Aug 21 2014 Kevin Fenzi <kevin@scrye.com> - 11.0.0-3
- Rebuild for rpm bug 1131960
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 11.0.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jun 18 2014 Peter Schiffer <pschiffe@redhat.com> - 11.0.0-1
- updated to 11.0.0
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Tue May 27 2014 Peter Schiffer <pschiffe@redhat.com> - 10.3.1-1
- resolves: #1077640
updated to 10.3.1
migrated to systemd timer units
* Mon Jan 27 2014 Peter Schiffer <pschiffe@redhat.com> - 10.2.1-1
- resolves: #1057547
updated to 10.2.1
* Mon Nov 11 2013 Peter Schiffer <pschiffe@redhat.com> - 10.2.0-1
- resolves: #1026244
updated to 10.2.0
* Fri Oct 25 2013 Peter Schiffer <pschiffe@redhat.com> - 10.1.7-1
- resolves: #1007794
updated to 10.1.7
* Wed Aug 14 2013 Peter Schiffer <pschiffe@redhat.com> - 10.1.6-1
- resolves: #972508
updated to 10.1.6
- resolves: #993394
fixed FTBFS (added BR on systemd)
- install the docs in the new pkgdocdir
(thanks to Mathieu Bridon <bochecha@fedoraproject.org> for the patch)
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.1.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Fri Apr 5 2013 Peter Schiffer <pschiffe@redhat.com> - 10.1.5-1
- resolves: #919581
updated to 10.1.5
- collect disk statistics by default
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Wed Jan 2 2013 Peter Schiffer <pschiffe@redhat.com> - 10.1.3-1
- resolves: #890425
updated to 10.1.3
* Mon Dec 3 2012 Peter Schiffer <pschiffe@redhat.com> - 10.1.2-2
- added new -y option to iostat command to skip first since boot report if
displaying multiple reports
* Tue Nov 13 2012 Peter Schiffer <pschiffe@redhat.com> - 10.1.2-1
- resolves: #863791
updated to 10.1.2
- resolves: #850333
migrated to the new systemd-rpm macros
- cleaned .spec file
* Wed Aug 01 2012 Peter Schiffer <pschiffe@redhat.com> - 10.1.1-1
- resolves: #844387
update to 10.1.1
- keep log files for 28 days instead of 7
- collect all aditional statistics
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Jun 19 2012 Peter Schiffer <pschiffe@redhat.com> - 10.0.5-1
- resolves: #822867
update to 10.0.5
* Wed May 16 2012 Peter Schiffer <pschiffe@redhat.com> - 10.0.4-1
- resolves: #803032
update to 10.0.4
- resolves: #820725
enable sysstat service by default
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 10.0.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Nov 30 2011 Peter Schiffer <pschiffe@redhat.com> - 10.0.3-1
- resolves: #757687
update to 10.0.3
* Tue Sep 13 2011 Tom Callaway <spot@fedoraproject.org> - 10.0.2-2
- fix libdir pathing in systemd service file
* Mon Sep 12 2011 Tom Callaway <spot@fedoraproject.org> - 10.0.2-1
- update to 10.0.2
- convert to systemd
* Tue Jun 7 2011 Ivana Hutarova Varekova <varekova@redhat.com> - 10.0.1-1
- update to 10.0.1
- remove useles patches
* Wed May 4 2011 Ivana Hutarova Varekova <varekova@redhat.com> - 10.0.0-4
- close the file descriptor in a special situation in read_uoptime function
- fix the number on open files in cifsiostat output
* Mon May 2 2011 Ivana Hutarova Varekova <varekova@redhat.com> - 10.0.0-3
- add -h optioon to iostat tool
(-h Make the disk stats report easier to read by a human.)
* Mon Apr 4 2011 Ivana Hutarova Varekova <varekova@redhat.com> - 10.0.0-2
- remove unnecessary patch
* Mon Apr 4 2011 Ivana Hutarova Varekova <varekova@redhat.com> - 10.0.0-1
- update to 10.0.0
remove obsolete patches
remove autoreconfiguration
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 9.0.6.1-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon Nov 22 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-13
- Resolves: #642280
sar -u overflow problem - thanks Michal Srb
* Thu Oct 7 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-12
- improve sar thickless kernel support
(fix the output per separate cpu "-P ALL" option )
* Mon Oct 4 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-11
- resolves: #635646
test the output of localtime properly
* Wed Sep 29 2010 jkeating - 9.0.6.1-10
- Rebuilt for gcc bug 634757
* Thu Sep 23 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-9
- add the mandir patch
- add the possibility to sed sadc cron options
* Tue Sep 21 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-8
- add necessary dependency (autoconf), necessary because of patch7
* Tue Sep 21 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-7
- remove needless DOCDIR setting
- remove needless INIT_DIR setting
- fix the problem with --disable-man-group option
* Wed Sep 8 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-6
- fix the sar output on tickless kernel
* Fri Aug 13 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-5
- remove bogus links description
* Mon Jul 19 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-4
- fix sar problem - sysstat can not monitor system status every second
* Mon Apr 19 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-3
- fix mpstat tool (when the cpu is switched off)
* Fri Apr 16 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-2
- fix the mpstat output on tickless kernel
* Tue Mar 2 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6.1-1
- update to 9.0.6.1
* Tue Feb 16 2010 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6-3
- fix init script format
* Fri Dec 11 2009 Ivana Hutarova Varekova <varekova@redhat.com> - 9.0.6-2
- fix the problem in get_nfs_mount_nr function
( iostat -n causes stack smashing)
* Wed Dec 2 2009 Ivana Hutarva Varekova <varekova@redhat.com> - 9.0.6-1
- update to 9.0.6
* Tue Sep 15 2009 Ivana Varekova <varekova@redhat.com> - 9.0.4-4
- fix init script
* Mon Sep 14 2009 Ivana Varekova <varekova@redhat.com> - 9.0.4-3
- fix init script - add INIT INFO flags (#522740)
and add condrestart, try-restart and force-reload (#522743)
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 9.0.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jul 20 2009 Ivana Varekova <varekova@redhat.com> - 9.0.4-1
- update to 9.0.4
* Thu May 28 2009 Ivana Varekova <varekova@redhat.com> - 9.0.3-1
- update to 9.0.3
- remove obsolete patches
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 8.0.4-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Fri Dec 5 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-6
- add /proc/diskstats reading patch
* Mon Sep 22 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-5
- Resolves: #463066 - Fix Patch0:/%%patch mismatch
* Wed Apr 23 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-4
- Resolves: #442801 mpstat shows one extra cpu
thanks Chris Wright
* Thu Mar 6 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-3
- add nfs extended statistic to iostat command
* Thu Feb 28 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-2
- retry write functuon in sadc command - thanks Tomas Mraz
* Fri Feb 8 2008 Ivana Varekova <varekova@redhat.com> - 8.0.4-1
- updated to 8.0.4
* Mon Dec 3 2007 Ivana Varekova <varekova@redhat.com> - 8.0.3-1
- updated to 8.0.3
* Fri Nov 9 2007 Ivana Varekova <varekova@redhat.com> - 8.0.2-3
- used macros instead of var, etc
* Thu Nov 8 2007 Ivana Varekova <varekova@redhat.com> - 8.0.2-2
- change license tag
- remove sysstat.crond source (add -d)
- remove obsolete sysconfig file
- spec file cleanup
* Mon Nov 5 2007 Ivana Varekova <varekova@redhat.com> - 8.0.2-1
- update 8.0.2
- spec file cleanup
* Wed Oct 24 2007 Ivana Varekova <varekova@redhat.com> - 8.0.1-2
- remove useless patches
* Mon Oct 22 2007 Ivana Varekova <varekova@redhat.com> - 8.0.1-1
- update to 8.0.1
- remove useless patches
- spec file cleanup
- remove smp build flag (ar problem)
- add libdir flags
* Wed Aug 15 2007 Ivana Varekova <varekova@redhat.com> - 7.0.4-3
- fix cve-2007-3852 -
sysstat insecure temporary file usage
* Fri Mar 23 2007 Ivana Varekova <varekova@redhat.com> - 7.0.4-2
- fix sa2 problem (sa2 works wrong when the /var/log/sa file is
a link to another directory)
* Mon Feb 12 2007 Ivana Varekova <varekova@redhat.com> - 7.0.4-1
- update to 7.0.4
- spec file cleanup
* Tue Jan 30 2007 Ivana Varekova <varekova@redhat.com> - 7.0.3-3
- remove -s flag
* Mon Dec 18 2006 Ivana Varekova <varekova@redhat.com> - 7.0.3-1
- update to 7.0.3
* Tue Nov 21 2006 Ivana Varekova <varekova@redhat.com> - 7.0.2-3
- update NFS mount statistic patch
* Wed Nov 8 2006 Ivana Varekova <varekova@redhat.com> - 7.0.2-1
- update to 7.0.2
* Thu Oct 26 2006 Ivana Varekova <varekova@redhat.com> - 7.0.0-3
- move tmp file (#208433)
* Mon Oct 9 2006 Ivana Varekova <varekova@redhat.com> - 7.0.0-2
- add NFS mount statistic (#184321)
* Fri Jul 14 2006 Marcela Maslanova <mmaslano@redhat.com> - 7.0.0-1
- new version 7.0.0
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 6.0.2-2.1
- rebuild
* Mon Jun 5 2006 Jesse Keating <jkeating@redhat.com> 6.0.2-2
- Add missing BR of gettext
* Fri May 5 2006 Ivana Varekova <varekova@redhat.com> 6.0.2-1
- update to 6.0.2
- remove asm/page.h used sysconf command to get PAGE_SIZE
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 6.0.1-3.2.1
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 6.0.1-3.2
- rebuilt for new gcc4.1 snapshot and glibc changes
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt
* Tue Oct 11 2005 Ivana Varekova <varekova@redhat.com> 6.0.1-3
- add FAQ to documentation (bug 170158)
* Mon Oct 10 2005 Ivana Varekova <varekova@redhat.com> 6.0.1-2
- fix chkconfig problem
* Fri Oct 7 2005 Ivana Varekova <varekova@redhat.com> 6.0.1-1
- version 6.0.1
* Thu Aug 18 2005 Florian La Roche <laroche@redhat.com>
- no need to kernel kernel 2.2 or newer anymore
* Tue May 10 2005 Ivana Varekova <varekova@redhat.com> 5.0.5-10.fc
- add debug files to debug_package
* Mon Mar 7 2005 Ivana Varekova <varekova@redhat.com> 5.0.5-9.fc
- rebuilt (add gcc4fix, update lib64ini)
* Fri Mar 4 2005 Ivana Varekova <varekova@redhat.ccm> 5.0.5-7.fc
- rebuilt
Loading…
Cancel
Save