procps/procps.spec

329 lines
9.4 KiB
RPMSpec
Raw Normal View History

#
# spec file for package procps
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%bcond_with bin2usr
%bcond_with pidof
%define somajor 5
%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.11
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+ and LGPL-2.1+
Group: System/Monitoring
Source: http://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-3.3.11.tar.xz
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
Patch5: procps-ng-3.3.8-top.1.diff
Patch7: procps-ng-3.3.8-readeof.patch
Patch8: procps-ng-3.3.10-slab.patch
Patch10: procps-ng-3.3.8-accuracy.dif
Patch11: procps-ng-3.3.10-xen.dif
Patch12: procps-ng-3.3.10-fdleak.dif
Patch13: procps-v3.3.3-columns.dif
Patch14: procps-ng-3.3.10-integer-overflow.patch
Patch15: procps-ng-3.3.10-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-ng-3.3.10-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.10-errno.patch
# PATCH-FEATURE-SUSE -- Let upstream pmap behave simialr to old suse pmap
Patch33: procps-ng-3.3.11-pmap4suse.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+ and LGPL-2.1+
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+
Group: System/Libraries
%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}
%patch0
%patch1
%patch3 -b .trcate
%patch5
%patch7
%patch8 -b .cache
%patch10
%patch11
%patch12
%patch13
%patch14
%patch15
%patch16
%patch17
%patch18
%patch19
%patch20
%patch21
%patch28
%patch31 -p1
%patch32
%patch33
%build
test -s .tarball-version || echo %{version} > .tarball-version
#./autogen.sh
autoreconf
major=$(sed -rn 's/^#define\s+NCURSES_VERSION_MAJOR\s+([0-9]+)/\1/p' /usr/include/ncurses.h)
export NCURSESW_CFLAGS="$(ncursesw${major}-config --cflags)"
export NCURSESW_LIBS="$(ncursesw${major}-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 \
--disable-modern-top
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 COPYING COPYING.LIB Documentation/bugs.md Documentation/FAQ
%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
%_mandir/man3/openproc.3.gz
%_mandir/man3/readproc.3.gz
%_mandir/man3/readproctab.3.gz
%files -n %{libname}
%defattr (-,root,root,755)
%{_libdir}/libprocps.so.%{somajor}*
%changelog