# # spec file for package procps # # Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %bcond_with bin2usr %bcond_with pidof %define somajor 3 %define libname libprocps%{somajor} Name: procps #Also: http://gitorious.org/procps/ URL: http://sf.net/projects/procps-ng/ BuildRequires: automake %ifarch ia64 x86_64 ppc64 ppc %sparc BuildRequires: libnuma-devel %endif BuildRequires: libselinux-devel BuildRequires: libtool BuildRequires: ncurses-devel BuildRequires: pkg-config %if 0%{?suse_version} > 1310 BuildRequires: pkgconfig(libsystemd-login) %else %if 0%{?suse_version} > 1230 BuildRequires: pkgconfig(libsystemd) %endif %endif BuildRequires: xz Version: 3.3.9 Release: 0 Provides: ps = %version-%release Obsoletes: ps < %version-%release Requires(post): %fillup_prereq Requires(post): %insserv_prereq Requires(postun): %insserv_prereq Summary: The ps utilities for /proc License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: System/Monitoring Source: http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-3.3.9.tar.xz Source1: procps-pmap-legacy.tar.bz2 Source2: boot.sysctl Source3: systat.xinetd Patch0: procps-ng-3.3.9-watch.patch Patch1: procps-v3.3.3-ia64.diff Patch3: procps-ng-3.3.9-w-notruncate.diff Patch4: procps-v3.3.4-w-simply-work.diff Patch5: procps-ng-3.3.8-top.1.diff Patch6: procps-v3.3.3-buffersize.diff Patch7: procps-ng-3.3.8-readeof.patch Patch8: procps-v3.3.3-slab.patch Patch9: procps-ng-3.3.8-selinux.patch Patch10: procps-ng-3.3.8-accuracy.dif Patch11: procps-v3.3.4-xen.dif Patch12: procps-v3.3.3-fdleak.dif Patch13: procps-v3.3.3-columns.dif Patch14: procps-v3.3.3-integer-overflow.patch Patch15: procps-ng-3.3.8-bnc634071_procstat2.diff Patch16: procps-ng-3.3.8-bnc634840.patch Patch17: procps-v3.3.3-read-sysctls-also-from-boot-sysctl.conf-kernelversion.diff Patch18: procps-ng-3.3.8-petabytes.patch Patch19: procps-v3.3.4-large_pcpu.patch Patch20: procps-ng-3.3.8-tinfo.dif Patch21: procps-v3.3.3-pwdx.patch # PATCH-FIX-OPENSUSE -- trifle rest of the old terabyte patch Patch28: procps-ng-3.3.8-vmstat-terabyte.dif # PATCH-FIX-SUSE -- Ignore scan_unevictable_pages in sysctl Patch31: procps-ng-3.3.8-ignore-scan_unevictable_pages.patch # PATCH-FIX-SUSE -- Avoid errno set by setlocale() Patch32: procps-ng-3.3.9-errno.patch # PATCH-FIX-SUSE -- Allow content lines below /proc/sys longer than 1024 characters Patch33: procps-ng-3.3.9-sysctl-a.patch # PATCH-ENHANCE-SUSE -- Increase buffer on reading/writing /proc/sys values Patch34: procps-ng-3.3.9-sysctl-iobuf.patch # PATCH-FIX-SUSE -- Ignore EIO on reading unset value of e.g. /proc/sys/net/ipv6/conf/all/stable_secret Patch35: procps-ng-3.3.9-stable_secret.patch # PATCH-FIX-SUSE -- After applying procps-3.3.9-11.5.1 sysctl is dying with a SIGSEGV Patch36: procps-ng-3.3.9-sysctl-iobuf-fd.patch Patch60: 0024-sysctl-system-loads-default-config-file.patch Patch61: 0025-Split-help-lines-to-help-translators.patch Patch62: 0026-library-fixing-uninitialized-variable-pos-in-whattim.patch Patch63: 0027-pgrep-Fixing-memory-leak-in-do_regcomp.patch Patch64: 0028-sysctl-Fixing-memory-leaks-in-PreloadSystem.patch Patch65: 0029-ps-ignore-SIGCONT.patch Patch66: 0031-vmstat-wide-output-still-not-wide-enough.patch Patch67: 0032-library-skip-replacement-of-trailing-0-in-read_unvec.patch Patch68: 0033-kill-for-PID-1-restored.patch Patch69: 0034-Check-for-presence-of-disks-in-vmstat.patch Patch70: 0035-PID-2-to-9-for-kill-too.patch Patch71: 0036-pgrep-fails-to-show-full-command-line-with-au.patch Patch72: 0037-fail-on-null-string-for-arguments.patch Patch73: 0038-Update-help-files.patch Patch74: 0039-vmstat-Support-for-timestamps-with-t-fix-for-wd.patch Patch75: 0040-watch-Don-t-leak-extra-fds-to-the-child.patch Patch76: 0041-vmstat-Fixing-format-security-flaws.patch Patch77: 0043-Added-get-trans-target-to-Makefile.patch Patch78: 0045-library-properly-handle-memory-used-by-tmpfs.patch Patch79: 0046-Minor-i18n-fixes.patch Patch80: 0047-sysctl-increase-max-supported-line-length-of-the-con.patch Patch81: 0049-fix-url-for-rsync.patch Patch82: 0055-misc-fix-man-doc-spelling-and-grammar-for-translatio.patch Patch83: 0058-library-reverting-tmpfs-subtraction-from-cached-18-F.patch # Top patches # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch121: 0023-top-do-not-forget-the-fscanf-s-terminating-null-byte.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch122: 0035-top-provide-for-discontinuous-not-active-NUMA-nodes.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch123: 0036-top-restore-the-former-behavior-after-stderr-redirec.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch124: 0037-top-avoid-name-conflict-in-the-next-version-of-stdli.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch125: 0038-top-protect-against-distortion-when-system-time-rese.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch126: 0044-top-avoid-a-nan-when-the-delay-interval-is-very-low.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch127: 0045-top-standardize-Esc-key-support-with-prompted-input.patch # PATCH-FIX-UPSTREAM added at 2014/05/15 Patch128: 0046-top-miscellaneous-accumulated-changes-to-program-cod.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch129: 0051-top-update-copyright-dates-plus-1-preprocessor-chang.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch130: 0052-top-refactor-man-document-so-as-to-allow-translation.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch131: 0053-top-minimize-the-usage-of-apostrophes-in-man-documen.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch132: 0054-top-swap-opening-quotes-for-back-tics-in-man-documen.patch # PATCH-FIX-UPSTREAM added at 2014/05/16 Patch133: 0060-top-miscellaneous-accumulated-changes-to-man-documen.patch # PATCH-FIX-UPSTREAM added at 2014/12/16 Patch134: bsc901202-add-better-help-output.patch # # PATCH-FIX-UPSTREAM added at 2018/06/05 Patch200: CVE-2018-1122.patch Patch201: CVE-2018-1123.patch Patch202: CVE-2018-1124.patch Patch203: CVE-2018-1125.patch Patch204: CVE-2018-1126.patch # PATCH-BACKPORT-UPSTREAM added at 2019/01/18 Patch300: procps-ng-3.3.9-bsc1121753-Cpus.patch # PATCH-BACKPORT-UPSTREAM added at 2019/10/15 Patch301: procps.git-ba6396f886f1a9911221e1c7c4b66dc75acb6948.patch Patch302: procps.git-ba6396-modify.patch # # PATCH-FIX-OPENSUSE -- fix build with sp3 kernel Patch500: pmap-lazyfree.diff # PATCH-FIX-SUSE -- Add missed ShmemPmdMapped entry for pmap legacy Patch501: pmap-add-ShmemPmdMapped.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The procps package contains a set of system utilities that provide system information. Procps includes ps, free, skill, snice, tload, top, uptime, vmstat, w, and watch. The ps command displays a snapshot of running processes. The top command provides a repetitive update of the statuses of running processes. The free command displays the amounts of free and used memory on your system. The skill command sends a terminate command (or another specified signal) to a specified set of processes. The snice command is used to change the scheduling priority of specified processes. The tload command prints a graph of the current system load average to a specified tty. The uptime command displays the current time, how long the system has been running, how many users are logged on, and system load averages for the past one, five, and fifteen minutes. The w command displays a list of the users who are currently logged on and what they are running. The watch program watches a running program. The vmstat command displays virtual memory statistics about processes, memory, paging, block I/O, traps, and CPU activity. %package devel Summary: Include Files and Libraries mandatory for Development License: GPL-2.0-or-later AND LGPL-2.1-or-later Group: Development/Libraries/C and C++ Requires: %{libname} = %{version} %description devel This package contains all necessary include files and libraries needed to develop applications that require these. %package -n %{libname} Summary: The procps library License: LGPL-2.1-or-later Group: System/Libraries Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig %description -n %{libname} The procps library can be used to read informations out from /proc the process information pseudo-file system, %prep %setup -q -n %{name}-ng-%{version} -a 1 %patch0 %patch1 %patch3 %patch4 %patch5 %patch6 %patch8 %patch9 %patch10 %patch11 %patch12 %patch13 %patch14 %patch15 %patch16 %patch17 %patch18 %patch19 %patch20 %patch21 %patch28 %patch31 -p1 %patch32 %patch33 %patch34 %patch35 %patch36 -p1 %patch60 %patch61 %patch62 %patch63 %patch64 %patch65 %patch66 %patch67 %patch68 %patch69 %patch70 %patch71 %patch72 %patch73 %patch74 %patch75 %patch76 %patch77 %patch78 %patch79 %patch80 %patch81 %patch82 %patch83 -b .xyz # Patches for top %patch121 %patch122 %patch123 %patch124 %patch125 %patch126 %patch127 %patch128 %patch129 %patch130 %patch131 %patch132 %patch133 %patch134 # %patch200 %patch201 %patch202 %patch203 %patch204 %patch300 %patch301 %patch302 %patch7 # %patch500 %patch501 -p1 # ln -sf procps-pmap-legacy/* . %build test -s .tarball-version || echo %{version} > .tarball-version #./autogen.sh autoreconf export NCURSESW_CFLAGS="$(ncursesw5-config --cflags)" export NCURSESW_LIBS="$(ncursesw5-config --libs)" export LFS_CFLAGS="$(getconf LFS_CFLAGS)" %global optflags %{optflags} -D_GNU_SOURCE $LFS_CFLAGS -DCPU_ZEROTICS -DUSE_X_COLHDR -pipe %configure \ --disable-static \ --disable-nls \ --disable-rpath \ --disable-kill \ %if !%{with pidof} --disable-pidof \ %endif --enable-watch8bit \ --enable-shared \ --enable-skill \ --enable-oomem \ --enable-w-from \ --enable-sigwinch \ --enable-wide-percent \ --enable-wide-memory \ --enable-w-from \ --enable-libselinux \ --with-pic=yes \ %if 0%{?suse_version} > 1230 --with-systemd \ %else --without-systemd \ %endif --with-gnu-ld make %{?_smp_mflags} ./pmap $$ || { uname -a echo /proc/$$/maps cat /proc/$$/maps echo /proc/$$/smaps cat /proc/$$/smaps exit 1 } %install make DESTDIR=%{buildroot} install install -d %{buildroot}/etc/xinetd.d install -d %{buildroot}/bin install -d %{buildroot}/sbin %if 0%{?suse_version} < 1230 install -d %{buildroot}/etc/init.d install -m 755 %{S:2} %{buildroot}/etc/init.d %endif install -m 644 %{S:3} %{buildroot}/etc/xinetd.d/systat # clean unwanted files (e.g. coreutils) rm -f %{buildroot}/usr/bin/kill rm -f %{buildroot}/usr/bin/uptime rm -f %{buildroot}%{_mandir}/man1/kill.1 rm -f %{buildroot}%{_mandir}/man1/uptime.1 rm -f %{buildroot}%{_libdir}/*.la rm -rf %{buildroot}%{_datadir}/doc/procps-ng %if %{with bin2usr} ln -s %{_bindir}/ps %{buildroot}/bin/ ln -s %{_bindir}/pgrep %{buildroot}/bin/ ln -s %{_bindir}/pkill %{buildroot}/bin/ ln -s %{_sbindir}/sysctl %{buildroot}/sbin/ %else mv %{buildroot}%{_bindir}/ps %{buildroot}/bin/ mv %{buildroot}%{_bindir}/pgrep %{buildroot}/bin/ mv %{buildroot}%{_bindir}/pkill %{buildroot}/bin/ mv %{buildroot}%{_sbindir}/sysctl %{buildroot}/sbin/ ln -s /bin/ps %{buildroot}%{_bindir}/ps ln -s /bin/pgrep %{buildroot}%{_bindir}/pgrep ln -s /bin/pkill %{buildroot}%{_bindir}/pkill ln -s /sbin/sysctl %{buildroot}%{_sbindir}/sysctl %endif %post %if 0%{?suse_version} < 1230 %{fillup_and_insserv -ny boot.sysctl boot.sysctl} %endif # %postun %insserv_cleanup %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %check make check %files %defattr (-,root,root,755) %doc NEWS README COPYING Documentation/BUGS Documentation/FAQ top/README.top %if 0%{?suse_version} < 1230 %config /etc/init.d/boot.sysctl %endif %config(noreplace) /etc/xinetd.d/systat %if %{with bin2usr} %verify(link) /bin/ps %verify(link) /bin/pgrep %verify(link) /bin/pkill %verify(link) /sbin/sysctl %{_bindir}/ps %{_bindir}/pgrep %{_bindir}/pkill %{_sbindir}/sysctl %else /bin/ps /bin/pgrep /bin/pkill /sbin/sysctl %verify(link) %{_bindir}/ps %verify(link) %{_bindir}/pgrep %verify(link) %{_bindir}/pkill %verify(link) %{_sbindir}/sysctl %endif %{_bindir}/free %if %{with pidof} %{_bindir}/pidof %endif %{_bindir}/pmap %{_bindir}/pwdx %{_bindir}/skill %{_bindir}/slabtop %{_bindir}/snice %{_bindir}/tload %{_bindir}/top %{_bindir}/vmstat %{_bindir}/w %{_bindir}/watch %_mandir/man1/free.1.gz %_mandir/man1/pgrep.1.gz %if %{with pidof} %_mandir/man1/pidof.1.gz %endif %_mandir/man1/pkill.1.gz %_mandir/man1/pmap.1.gz %_mandir/man1/ps.1.gz %_mandir/man1/pwdx.1.gz %_mandir/man1/skill.1.gz %_mandir/man1/slabtop.1.gz %_mandir/man1/snice.1.gz %_mandir/man1/tload.1.gz %_mandir/man1/top.1.gz %_mandir/man1/w.1.gz %_mandir/man1/watch.1.gz %_mandir/man5/sysctl.conf.5.gz %_mandir/man8/vmstat.8.gz %_mandir/man8/sysctl.8.gz %files devel %defattr (-,root,root,755) %dir %{_includedir}/proc %{_includedir}/proc/alloc.h %{_includedir}/proc/devname.h %{_includedir}/proc/escape.h %{_includedir}/proc/procps.h %{_includedir}/proc/pwcache.h %{_includedir}/proc/readproc.h %{_includedir}/proc/sig.h %{_includedir}/proc/slab.h %{_includedir}/proc/sysinfo.h %{_includedir}/proc/version.h %{_includedir}/proc/wchan.h %{_includedir}/proc/whattime.h %{_libdir}/libprocps.so %{_libdir}/pkgconfig/libprocps.pc %files -n %{libname} %defattr (-,root,root,755) %{_libdir}/libprocps.so.%{somajor}* %changelog