%undefine with_multilib
%endif
-%define basever 4.8
-%define postver .1
+%define basever 4.19
+%define postver .43
Summary: Assortment of tools for the Linux kernel
Summary(pl.UTF-8): Zestaw narzędzi dla jądra Linuksa
Name: kernel-tools
Version: %{basever}%{postver}
-Release: 2
+Release: 1
License: GPL v2
Group: Applications/System
Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz
-# Source0-md5: c1af0afbd3df35c1ccdc7a5118cd2d07
+# Source0-md5: 740a90cf810c2105df8ee12e5d0bb900
Source1: cpupower.service
Source2: cpupower.config
%if "%{postver}" != ".0"
Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz
-# Patch0-md5: 349734be5387f1605074515ad7207627
+# Patch0-md5: de59f616dfe3f55ee03ccb06e59481ef
%endif
Patch1: x32.patch
-Patch2: %{name}-format.patch
+Patch3: %{name}-perf-update.patch
URL: http://www.kernel.org/
BuildRequires: bison
+BuildRequires: docutils
BuildRequires: flex
BuildRequires: gettext-tools
+BuildRequires: linux-libc-headers >= 7:4.12
BuildRequires: ncurses-devel
+BuildRequires: ncurses-ext-devel
BuildRequires: pciutils-devel
BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.647
+BuildRequires: python3
+BuildRequires: python3-modules
+BuildRequires: rpmbuild(macros) >= 1.673
BuildRequires: tar >= 1:1.22
BuildRequires: xz
%if %{with perf}
BuildRequires: asciidoc
BuildRequires: audit-libs-devel
-BuildRequires: binutils-devel
+BuildRequires: binutils-devel >= 4:2.29
BuildRequires: docbook-dtd45-xml
BuildRequires: docbook-style-xsl
BuildRequires: elfutils-devel
Summary: Bash completion for perf command
Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla polecenia perf
Group: Applications/Shells
-Requires: %{name}-perf
+Requires: %{name}-perf = %{version}-%{release}
Requires: bash-completion
%if "%{_rpmversion}" >= "5"
BuildArch: noarch
%description -n bash-completion-perf -l pl.UTF-8
Bashowe uzupełnianie parametrów dla polecenia perf.
+%package -n bash-completion-kernel-tools
+Summary: Bash completion for kernel-tools commands
+Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla poleceń kernel-tools
+Group: Applications/Shells
+Requires: %{name} = %{version}-%{release}
+Requires: bash-completion >= 2.0
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
+
+%description -n bash-completion-kernel-tools
+Bash completion for kernel-tools commands (currently bpftool).
+
+%description -n bash-completion-kernel-tools -l pl.UTF-8
+Bashowe uzupełnianie parametrów dla poleceń kernel-tools (obecnie
+bpftool).
+
%package -n usbip
Summary: USB device sharing system over IP network
Summary(pl.UTF-8): System współdzielenia urządzeń USB po sieci IP
%endif
%patch1 -p1
-%patch2 -p1
+%patch3 -p1
%{__sed} -i -e '/^CFLAGS = /s/ -g / $(OPTFLAGS) /' tools/hv/Makefile
%{__sed} -i -e '/^CFLAGS+=/s/ -O1 / $(OPTFLAGS) /' tools/thermal/tmon/Makefile
-%{__sed} -i -e 's#libexec/perf-core#%{_datadir}/perf-core#g' tools/perf/Makefile.config
+%{__sed} -i -e 's#libexec/perf-core#share/perf-core#g' tools/perf/Makefile.config
+
+# don't rebuild on make install
+%{__sed} -i -e '/^\$(LIBBPF): FORCE/ s/FORCE$//' tools/bpf/bpftool/Makefile
%build
cd linux-%{basever}
# Simple Disk Sleep Monitor
-%{__cc} %{rpmcppflags} %{rpmcflags} %{rpmldflags} Documentation/laptops/dslm.c -o dslm
+%{__make} -C tools/laptop/dslm \
+ %{makeopts} \
+ EXTRA_CFLAGS="%{rpmcflags}"
# tools common (used eg. by tools/vm)
%{__make} -C tools/lib/api \
%endif
CFLAGS="%{rpmcflags}" \
-%{__make} -C tools/iio \
- CC="%{__cc}"
+%{__make} -C tools/iio -j1 \
+ CC="%{__cc}" \
+ %{?with_verbose:V=1}
%{__make} -C tools/laptop/freefall \
CC="%{__cc}" \
CFLAGS="%{rpmcflags}"
-%ifarch %{ix86}
-# drivers/lguest is x86-32 only
-%{__make} -C tools/lguest \
+# make bpftool first, top-level bpf CFLAGS cause includes conflict
+CFLAGS="%{rpmcflags}" \
+%{__make} -C tools/bpf/bpftool \
CC="%{__cc}" \
- CFLAGS="%{rpmcflags} -Wall -U_FORTIFY_SOURCE -Iinclude"
-%endif
+ %{?with_verbose:V=1}
CFLAGS="%{rpmcflags}" \
-%{__make} -C tools/net \
- CC="%{__cc}"
+%{__make} -C tools/bpf \
+ CC="%{__cc}" \
+ EXTRA_CFLAGS="%{rpmcflags}" \
+ %{?with_verbose:V=1}
# perf
%if %{with perf}
%endif
%ifarch %{ix86} %{x8664} x32
+CFLAGS="%{rpmcflags}" \
%{__make} -C tools/power/x86/x86_energy_perf_policy \
- CC="%{__cc}" \
- CFLAGS="%{rpmcflags}"
+ CC="%{__cc}"
+
CFLAGS="%{rpmcflags}" \
%{__make} -C tools/power/x86/turbostat \
CC="%{__cc}"
install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man8}
-install -p dslm $RPM_BUILD_ROOT%{_sbindir}
+install -p tools/laptop/dslm/dslm $RPM_BUILD_ROOT%{_sbindir}
install -p tools/gpio/lsgpio $RPM_BUILD_ROOT%{_bindir}
install -p tools/laptop/freefall/freefall $RPM_BUILD_ROOT%{_sbindir}
-%ifarch %{ix86}
-install -p tools/lguest/lguest $RPM_BUILD_ROOT%{_bindir}
-%endif
-
-install -p tools/net/{bpf_asm,bpf_dbg,bpf_jit_disasm} $RPM_BUILD_ROOT%{_bindir}
+%{__make} -C tools/bpf install \
+ prefix=$RPM_BUILD_ROOT%{_prefix} \
+ bash_compdir=$RPM_BUILD_ROOT%{bash_compdir} \
+ %{?with_verbose:V=1}
+%{__make} -C tools/bpf/bpftool doc-install \
+ prefix=$RPM_BUILD_ROOT%{_prefix} \
+ mandir=$RPM_BUILD_ROOT%{_mandir} \
+ %{?with_verbose:V=1}
install -p tools/thermal/tmon/tmon $RPM_BUILD_ROOT%{_bindir}
cp -p tools/thermal/tmon/tmon.8 $RPM_BUILD_ROOT%{_mandir}/man8
# gen_init_cpio
install -p usr/gen_init_cpio $RPM_BUILD_ROOT%{_bindir}/gen_init_cpio
+rm -f $RPM_BUILD_ROOT%{_mandir}/man7/bpf-helpers.7*
+
%clean
rm -rf $RPM_BUILD_ROOT
%attr(755,root,root) %{_bindir}/lsiio
%attr(755,root,root) %{_bindir}/slabinfo
%attr(755,root,root) %{_bindir}/tmon
+%attr(755,root,root) %{_sbindir}/bpftool
%attr(755,root,root) %{_sbindir}/dslm
%attr(755,root,root) %{_sbindir}/freefall
%attr(755,root,root) %{_sbindir}/page-types
+%{_mandir}/man8/bpftool*.8*
%{_mandir}/man8/tmon.8*
-%ifarch %{ix86}
-%doc linux-%{basever}/tools/lguest/lguest.txt
-%attr(755,root,root) %{_bindir}/lguest
-%endif
%ifarch %{ix86} %{x8664} x32
%attr(755,root,root) %{_bindir}/centrino-decode
%attr(755,root,root) %{_bindir}/powernow-k8-decode
%attr(755,root,root) %{_bindir}/perf
%attr(755,root,root) %{_bindir}/trace
%{_mandir}/man1/perf*.1*
+%{_docdir}/perf-tip
%dir %{_datadir}/perf-core
%attr(755,root,root) %{_datadir}/perf-core/perf-archive
%attr(755,root,root) %{_datadir}/perf-core/perf-with-kcore
+%{_datadir}/perf-core/strace
%dir %{_datadir}/perf-core/scripts
%dir %{_libdir}/traceevent/plugins
%attr(755,root,root) %{_libdir}/traceevent/plugins/plugin_*.so
+%dir %{_prefix}/lib/perf
+%{_prefix}/lib/perf/examples
+%{_prefix}/lib/perf/include
+
%if %{with multilib}
%files perf-vdso32
%defattr(644,root,root,755)
/etc/bash_completion.d/perf
%endif
+%files -n bash-completion-kernel-tools
+%defattr(644,root,root,755)
+%{bash_compdir}/bpftool
+
%if %{with usbip}
%files -n usbip
%defattr(644,root,root,755)