diff --git a/.gitignore b/.gitignore index 6afb65f..9bcea87 100644 --- a/.gitignore +++ b/.gitignore @@ -7,13 +7,3 @@ atop-1.23.tar.gz /atop-2.4.0.tar.gz /atop-2.5.0.tar.gz /atop-2.6.0.tar.gz -/atop-2.7.0.tar.gz -/atop-2.7.1.tar.gz -/atop-2.8.0.tar.gz -/atop-2.8.1.tar.gz -/atop-2.9.0.tar.gz -/atop-2.10.0.tar.gz -/atop-2.11.0.tar.gz -/atop-2.11.1.tar.gz -/atop-2.12.0.tar.gz -/atop-2.12.1.tar.gz diff --git a/9cb119713b5e6be43671fe1856fb4bd49ff91fa7.patch b/9cb119713b5e6be43671fe1856fb4bd49ff91fa7.patch new file mode 100644 index 0000000..78fa578 --- /dev/null +++ b/9cb119713b5e6be43671fe1856fb4bd49ff91fa7.patch @@ -0,0 +1,35 @@ +From 9cb119713b5e6be43671fe1856fb4bd49ff91fa7 Mon Sep 17 00:00:00 2001 +From: Gerlof Langeveld +Date: Tue, 23 Mar 2021 16:50:48 +0100 +Subject: [PATCH] Correct definition of environment variable LOGOPTS The former + definition of the empty environment variable LOGOPTS in the atop.service file + (Environment=LOGOPTS="") causes an empty command line parameter for atop + running in the background. This empty parameter results in an interval timer + definition of 0 seconds which means that atop only writes one single sample + to the daily logfile and after that no more! When the environment variable is + overruled by the definition LOGOPTS="" (or another value) in the file + /etc/default/atop the problem is bypassed. + +--- + atop.service | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/atop.service b/atop.service +index 855e51b..16f24e9 100644 +--- a/atop.service ++++ b/atop.service +@@ -3,10 +3,10 @@ Description=Atop advanced performance monitor + Documentation=man:atop(1) + + [Service] +-Environment=LOGOPTS="" +-Environment=LOGINTERVAL=600 +-Environment=LOGGENERATIONS=28 +-Environment=LOGPATH=/var/log/atop ++Environment="LOGOPTS=" ++Environment="LOGINTERVAL=600" ++Environment="LOGGENERATIONS=28" ++Environment="LOGPATH=/var/log/atop" + EnvironmentFile=/etc/default/atop + ExecStartPre=/bin/sh -c 'test -n "$LOGINTERVAL" -a "$LOGINTERVAL" -eq "$LOGINTERVAL"' + ExecStartPre=/bin/sh -c 'test -n "$LOGGENERATIONS" -a "$LOGGENERATIONS" -eq "$LOGGENERATIONS"' diff --git a/atop-2.3.0-newer-gcc.patch b/atop-2.3.0-newer-gcc.patch new file mode 100644 index 0000000..efa1858 --- /dev/null +++ b/atop-2.3.0-newer-gcc.patch @@ -0,0 +1,35 @@ +From 7bf30c52a37118ff4f211e67e1736099f3d1dcb3 Mon Sep 17 00:00:00 2001 +From: Gerlof Langeveld +Date: Sat, 22 Sep 2018 11:50:50 +0200 +Subject: [PATCH] Own macro's added to determine major/minor of logical volume. + The standard 'minor' and 'major' macro's are not available any more in gcc8. + +--- + photosyst.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/photosyst.c b/photosyst.c +index 19cbbe1..019b9e0 100644 +--- a/photosyst.c ++++ b/photosyst.c +@@ -184,6 +184,9 @@ static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof + + #define MAXCNT 64 + ++#define MAJOR(x) ((((unsigned long long)x>>8)&0xfff)|((unsigned int)((unsigned long long)x>>32)&~0xfff)) ++#define MINOR(x) ((x&0xff)|((unsigned int)((unsigned long long)x>>12)&~0xff)) ++ + /* return value of isdisk() */ + #define NONTYPE 0 + #define DSKTYPE 1 +@@ -1479,8 +1482,8 @@ lvmmapname(unsigned int major, unsigned int minor, + */ + strncpy(dmp->name, dentry->d_name, MAXDKNAM); + dmp->name[MAXDKNAM-1] = 0; +- dmp->major = major(statbuf.st_rdev); +- dmp->minor = minor(statbuf.st_rdev); ++ dmp->major = MAJOR(statbuf.st_rdev); ++ dmp->minor = MINOR(statbuf.st_rdev); + + hashix = DMHASH(dmp->major, dmp->minor); + diff --git a/atop.spec b/atop.spec index c7c32b4..567810f 100644 --- a/atop.spec +++ b/atop.spec @@ -1,23 +1,28 @@ %define _hardened_build 1 Name: atop -Version: 2.12.1 -Release: 2%{?dist} +Version: 2.6.0 +Release: 6%{?dist} Summary: An advanced interactive monitor to view the load on system and process level -License: GPL-2.0-or-later -URL: https://www.atoptool.nl -Source0: https://www.atoptool.nl/download/%{name}-%{version}.tar.gz +License: GPLv2+ +URL: http://www.atoptool.nl +Source0: http://www.atoptool.nl/download/%{name}-%{version}.tar.gz Source1: atop.d -Patch0: atop-sysconfig.patch +Patch0: nvme_support.patch +Patch1: atop-sysconfig.patch +Patch2: atop-2.3.0-newer-gcc.patch +Patch3: 9cb119713b5e6be43671fe1856fb4bd49ff91fa7.patch BuildRequires: gcc BuildRequires: zlib-devel -BuildRequires: ncurses-devel -BuildRequires: glib2-devel +BuildRequires: ncurses-devel BuildRequires: systemd -BuildRequires: make +BuildRequires: make +%if 0%{?rhel} >= 8 || 0%{?fedora} +Requires: python3-py3nvml +%endif Requires(post): systemd Requires(preun): systemd @@ -37,16 +42,23 @@ performance-monitors: - Watch deviations only - Accumulated process activity per user - Accumulated process activity per program +For more informations: http://www.atcomputing.nl/Tools/atop +The package does not make use of the patches available at +http://www.atcomputing.nl/Tools/atop/kernpatch.html + %prep %setup -q -%patch -P 0 -p0 -b .sysconfig +%patch0 -p0 -b .nvme +%patch1 -p0 -b .sysconfig +%patch2 -p1 -b .newer-gcc +%patch3 -p1 -b .service # Correct unit file path sed -i "s|/etc/default/atop|/etc/sysconfig/atop|g" atop.service %build -make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS $(pkg-config --cflags glib-2.0) -I. -std=gnu17" +make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS" %install install -Dp -m 0755 atop $RPM_BUILD_ROOT%{_bindir}/atop @@ -54,7 +66,6 @@ install -Dp -m 0755 atopconvert $RPM_BUILD_ROOT%{_bindir}/atopconvert ln -s atop $RPM_BUILD_ROOT%{_bindir}/atopsar install -Dp -m 0644 man/atop.1 $RPM_BUILD_ROOT%{_mandir}/man1/atop.1 install -Dp -m 0644 man/atopsar.1 $RPM_BUILD_ROOT%{_mandir}/man1/atopsar.1 -install -Dp -m 0644 man/atopacctd.8 $RPM_BUILD_ROOT%{_mandir}/man8/atopacctd.8 install -Dp -m 0755 atop.daily $RPM_BUILD_ROOT%{_datadir}/atop/atop.daily install -Dp -m 0644 atop.default $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/atop install -Dp -m 0755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/atopd @@ -62,29 +73,29 @@ install -Dp -m 0644 atop.service $RPM_BUILD_ROOT%{_unitdir}/atop.service install -d $RPM_BUILD_ROOT%{_localstatedir}/log/atop install -Dp -m 0755 atopacctd $RPM_BUILD_ROOT%{_sbindir}/atopacctd install -Dp -m 0644 atopacct.service $RPM_BUILD_ROOT%{_unitdir}/atopacct.service -#%%if 0%%{?rhel} >= 8 || 0%%{?fedora} -#install -Dp -m 0755 atopgpud $RPM_BUILD_ROOT%%{_sbindir}/atopgpud -#install -Dp -m 0644 atopgpu.service $RPM_BUILD_ROOT%%{_unitdir}/atopgpu.service -#%%endif +%if 0%{?rhel} >= 8 || 0%{?fedora} +install -Dp -m 0755 atopgpud $RPM_BUILD_ROOT%{_sbindir}/atopgpud +install -Dp -m 0644 atopgpu.service $RPM_BUILD_ROOT%{_unitdir}/atopgpu.service +%endif install -Dp -m 0644 atop-rotate.* $RPM_BUILD_ROOT%{_unitdir}/ %post %systemd_post atop.service atopacct.service atop-rotate.timer -#%%if 0%%{?rhel} >= 8 || 0%%{?fedora} -#%%systemd_post atopgpu.service -#%%endif +%if 0%{?rhel} >= 8 || 0%{?fedora} +%systemd_post atopgpu.service +%endif %preun %systemd_preun atop.service atopacct.service atop-rotate.timer -#%%if 0%%{?rhel} >= 8 || 0%%{?fedora} -#%%systemd_preun atopgpu.service -#%%endif +%if 0%{?rhel} >= 8 || 0%{?fedora} +%systemd_preun atopgpu.service +%endif %postun %systemd_postun_with_restart atop.service atopacct.service atop-rotate.timer -#%%if 0%%{?rhel} >= 8 || 0%%{?fedora} -#%%systemd_postun_with_restart atopgpu.service -#%%endif +%if 0%{?rhel} >= 8 || 0%{?fedora} +%systemd_postun_with_restart atopgpu.service +%endif %files @@ -93,7 +104,7 @@ install -Dp -m 0644 atop-rotate.* $RPM_BUILD_ROOT%{_unitdir}/ %else %license COPYING %endif -%doc README* +%doc AUTHOR README* %config(noreplace) %{_sysconfdir}/sysconfig/atop %{_bindir}/atopsar %{_bindir}/atop @@ -101,87 +112,16 @@ install -Dp -m 0644 atop-rotate.* $RPM_BUILD_ROOT%{_unitdir}/ %{_bindir}/atopconvert %{_mandir}/man1/atop.1.gz %{_mandir}/man1/atopsar.1.gz -%{_mandir}/man8/atopacctd.8.gz %attr(0755,root,root) %dir %{_localstatedir}/log/atop %{_unitdir}/atop*.service %{_unitdir}/atop*.timer %{_datadir}/atop/atop.daily %{_sbindir}/atopacctd -#%%if 0%%{?rhel} >= 8 || 0%%{?fedora} -#%%{_sbindir}/atopgpud -#%%endif +%if 0%{?rhel} >= 8 || 0%{?fedora} +%{_sbindir}/atopgpud +%endif %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 2.12.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Tue Sep 23 2025 Gwyn Ciesla - 2.12.1-1 -- 2.12.1 - -* Wed Jul 23 2025 Fedora Release Engineering - 2.12.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Mon Jun 16 2025 Gwyn Ciesla - 2.12.0-1 -- 2.12.0 - -* Mon Mar 31 2025 Gwyn Ciesla - 2.11.1-1 -- 2.11.1 - -* Thu Jan 16 2025 Fedora Release Engineering - 2.11.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Jul 29 2024 Gwyn Ciesla - 2.11.0-1 -- 2.11.0 - -* Wed Jul 17 2024 Fedora Release Engineering - 2.10.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 2.10.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 2.10.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Thu Jan 04 2024 Gwyn Ciesla - 2.10.0-1 -- 2.10.0 - -* Wed Jul 19 2023 Fedora Release Engineering - 2.9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Mon May 15 2023 Gwyn Ciesla - 2.9.0-1 -- 2.9.0 - -* Sun Mar 05 2023 Gwyn Ciesla - 2.8.1-3 -- migrated to SPDX license - -* Wed Jan 18 2023 Fedora Release Engineering - 2.8.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Mon Jan 09 2023 Gwyn Ciesla - 2.8.1-1 -- 2.8.1 - -* Tue Jan 03 2023 Gwyn Ciesla - 2.8.0-1 -- 2.8.0 - -* Wed Dec 07 2022 Gwyn Ciesla - 2.7.1-4 -- Include atopacctd man page - -* Wed Jul 20 2022 Fedora Release Engineering - 2.7.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 2.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Tue Jan 11 2022 Gwyn Ciesla - 2.7.1-1 -- 2.7.1 -- Drop atopgpud as it requires proprietary NVIDIA drivers. - -* Mon Dec 20 2021 Gwyn Ciesla - 2.7.0-1 -- 2.7.0 - -* Wed Jul 21 2021 Fedora Release Engineering - 2.6.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - * Tue Apr 13 2021 Gwyn Ciesla - 2.6.0-6 - Upstream patch to fix service file. diff --git a/nvme_support.patch b/nvme_support.patch new file mode 100644 index 0000000..bc144a6 --- /dev/null +++ b/nvme_support.patch @@ -0,0 +1,11 @@ +diff -up ./photosyst.c.orig ./photosyst.c +--- ./photosyst.c.orig 2017-03-25 11:00:03.000000003 +0200 ++++ ./photosyst.c 2017-12-08 01:31:13.795157092 +0200 +@@ -1537,6 +1537,7 @@ static struct { + { "^dasd[a-z][a-z]*$", {0}, nullmodname, DSKTYPE, }, + { "^mmcblk[0-9][0-9]*$", {0}, nullmodname, DSKTYPE, }, + { "^emcpower[a-z][a-z]*$", {0}, nullmodname, DSKTYPE, }, ++ { "^nvme[0-9][a-z][0-9]*$", {0}, nullmodname, DSKTYPE, }, + }; + + static int diff --git a/sources b/sources index 5ba284b..625a61d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (atop-2.12.1.tar.gz) = e01db51bf025598e7bad585f62761e10d23a77f6c7be96418bc8919a72c74628851ae5cbdc0c12ed752f80b44f5b72f2102692dbbb3210cacc59b32340107ce7 +SHA512 (atop-2.6.0.tar.gz) = 8d4e2ae56a63738fc615f294d1f4e27cd9eab20acaf5d36c82d87390f96d38cf28cab0a00507459c3ce6e535294a442c4546e0cf732bad253cb518a14cdf5e88