procps/procps.spec

318 lines
9.6 KiB
RPMSpec
Raw Normal View History

#
# spec file for package procps
#
# Copyright (c) 2013 SUSE LINUX Products 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
%define somajor 1
%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} > 1230
BuildRequires: pkgconfig(systemd)
%endif
BuildRequires: xz
Version: 3.3.8
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.8.tar.xz
Source1: procps-pmap-legacy.tar.bz2
Source2: boot.sysctl
Source3: systat.xinetd
Patch0: procps-ng-3.3.8-watch.patch
Patch1: procps-v3.3.3-ia64.diff
Patch2: procps-v3.3.4-stealtime.patch
Patch3: procps-v3.3.4-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-UPSTREAM -- Add the major version to dlopen of libnuma
Patch22: 0001-top-add-the-major-version-to-dlopen-of-libnuma-sonam.patch
# PATCH-FIX-UPSTREAM -- Use common mdoc nroff macros
Patch23: 0001-top-trade-two-groff_mdoc-macros-for-groff-equivalent.patch
# PATCH-FIX-UPSTREAM -- Let libproc support EPIPE in close_stream
Patch24: 0002-library-for-atexit-support-fix-fileutils-for-EPIPE.patch
# PATCH-FIX-UPSTREAM -- Do not clear screen after end-of-job
Patch25: 0001-top-enable-screen-contents-preservation-at-endofjob.patch
# PATCH-FIX-UPSTREAM -- Cursor repositioning includes line oriented input
Patch26: 0002-top-cursor-repositioning-includes-line-oriented-inpu.patch
# PATCH-FIX-UPSTREAM -- Suppress end-of-job report if top if not ended with 'q' key
Patch27: 0001-top-refine-some-miscellaneous-signals-interrupt-stuf.patch
# PATCH-FIX-OPENSUSE -- trifle rest of the old terabyte patch
Patch28: procps-ng-3.3.8-vmstat-terabyte.dif
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 props library
License: LGPL-2.1+
Group: System/Libraries
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%description -n %{libname}
The props 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
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9
%patch10
%patch11
%patch12
%patch13
%patch14
%patch15
%patch16
%patch17
%patch18
%patch19
%patch20
%patch21
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28
%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 \
--enable-watch8bit \
--enable-shared \
--enable-skill \
--enable-oomem \
--enable-w-from \
--enable-sigwinch \
--enable-wide-percent \
--enable-w-from \
--with-pic=yes \
%if 0%{?suse_version} > 1230
--with-systemd \
%else
--without-systemd \
%endif
--with-gnu-ld
make %{?_smp_mflags}
%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
%{_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
%_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