X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-tools.spec;h=88dea1290225a6c1cc942012982a2eb1c8c9a0ed;hb=49505f6ff5a8aeb3be36bd3303f90f44dd69b6a2;hp=255b656d1309cec4cf5a787631d23666c9f7ac43;hpb=d4e17d6f623e0bcd28b4be19115a783d0c8b6285;p=packages%2Fkernel-tools.git diff --git a/kernel-tools.spec b/kernel-tools.spec index 255b656..88dea12 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -3,7 +3,8 @@ # - add -n python-perf? # - add bcond to disable building docs (perf docs) # - install of perf links perf binary again - +# - build runqslower (needs vmlinux with BPF section) +# # Conditional build: %bcond_without verbose # verbose build (V=1) %bcond_without cpupower # cpupower tools @@ -11,64 +12,78 @@ %bcond_without gtk # GTK+ 2.x perf support %bcond_without libunwind # libunwind perf support %bcond_without multilib # multilib perf support +%bcond_with runqslower # runqslower bpf tool %bcond_without usbip # usbip utils -%ifarch x32 -%undefine with_libunwind -%endif %ifnarch %{x8664} %undefine with_multilib %endif -%define basever 4.14 -%define postver .15 +%define basever 5.7 +%define postver .0 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: 1 +Release: 2 License: GPL v2 Group: Applications/System -Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz -# Source0-md5: bacdb9ffdcd922aa069a5e1520160e24 +Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{basever}.tar.xz +# Source0-md5: f63ed18935914e1ee3e04c2a0ce1ba3b Source1: cpupower.service Source2: cpupower.config %if "%{postver}" != ".0" -Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz -# Patch0-md5: de16c219ce4548d63ff7d6c670340a9e +Patch0: https://www.kernel.org/pub/linux/kernel/v5.x/patch-%{version}.xz +# Patch0-md5: 7055ff82e7e6a557c04831a191ed14b3 %endif Patch1: x32.patch +Patch2: regex.patch Patch3: %{name}-perf-update.patch -Patch4: binutils-2.29.patch -URL: http://www.kernel.org/ +Patch4: %{name}-perf-gtk2.patch +Patch5: %{name}-bpf-hashmap-upstream.patch +Patch6: %{name}-bpf-hashmap.patch +Patch7: %{name}-usbip-nocommon.patch +URL: https://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: babeltrace-devel BuildRequires: binutils-devel >= 4:2.29 BuildRequires: docbook-dtd45-xml BuildRequires: docbook-style-xsl -BuildRequires: elfutils-devel +BuildRequires: elfutils-devel >= 0.158 %if %{with multilib} BuildRequires: gcc-multilib-32 BuildRequires: gcc-multilib-x32 %endif +# for `btftool btf dump file ... format c` - requires vmlinux with BPF section +%{?with_runqslower:BuildRequires: kernel-vmlinux >= 5.?} %{?with_libunwind:BuildRequires: libunwind-devel >= 0.99} BuildRequires: numactl-devel +BuildRequires: openssl-devel BuildRequires: perl-devel >= 5.1 BuildRequires: python-devel BuildRequires: rpm-pythonprov BuildRequires: slang-devel BuildRequires: xmlto +BuildRequires: xz-devel +BuildRequires: zlib-devel +BuildRequires: zstd-devel +# openscd? (CORESIGHT=1 for %{arm}?) %if %{with gtk} BuildRequires: gtk+2-devel >= 2.0 %endif @@ -141,6 +156,22 @@ Development files for the cpupower library. %description cpupower-libs-devel -l pl.UTF-8 Pliki programistyczne biblioteki cpupower. +%package -n bash-completion-cpupower +Summary: Bash completion for cpupower tools +Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla poleceń cpupower +Group: Applications/Shells +Requires: %{name}-cpupower = %{version}-%{release} +Requires: bash-completion +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description -n bash-completion-cpupower +Bash completion for cpupower tools. + +%description -n bash-completion-cpupower -l pl.UTF-8 +Bashowe uzupełnianie parametrów dla poleceń cpupower. + %package hv Summary: Hyper-V virtualization tools Summary(pl.UTF-8): Narzędzia do wirtualizacji Hyper-V @@ -255,7 +286,7 @@ Ten pakiet zawiera graficzny interfejs oparty na GTK+ 2. 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 @@ -267,6 +298,23 @@ Bash completion for perf command. %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 @@ -356,14 +404,35 @@ cd linux-%{basever} %endif %patch1 -p1 +%patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -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 + +%if %{without runqslower} +%{__sed} -i -e '/^all: / s/ runqslower//' \ + -e '/^install: / s/ runqslower_install//' \ + tools/bpf/Makefile +%endif %build +Wstringop="" +Waddressof="" +%if "%{cc_version}" >= "8" +Wstringop="-Wno-error=stringop-truncation" +%endif +%if "%{cc_version}" >= "9" +Waddressof="-Wno-error=address-of-packed-member" +%endif cd linux-%{basever} # Simple Disk Sleep Monitor @@ -374,7 +443,7 @@ cd linux-%{basever} # tools common (used eg. by tools/vm) %{__make} -C tools/lib/api \ %{makeopts} \ - EXTRA_CFLAGS="%{rpmcflags}" + EXTRA_CFLAGS="%{rpmcflags} $Wstringop" # lsgpio CFLAGS="%{rpmcflags}" \ @@ -390,19 +459,29 @@ CFLAGS="%{rpmcflags}" \ CFLAGS="%{rpmcflags}" \ %{__make} -C tools/iio -j1 \ - CC="%{__cc}" + CC="%{__cc}" \ + %{?with_verbose:V=1} %{__make} -C tools/laptop/freefall \ CC="%{__cc}" \ CFLAGS="%{rpmcflags}" +# make bpftool first, top-level bpf CFLAGS cause includes conflict CFLAGS="%{rpmcflags}" \ -%{__make} -C tools/net \ - CC="%{__cc}" +%{__make} -C tools/bpf/bpftool \ + CC="%{__cc}" \ + %{?with_verbose:V=1} + +CFLAGS="%{rpmcflags}" \ +%{__make} -C tools/bpf \ + CC="%{__cc}" \ + EXTRA_CFLAGS="%{rpmcflags}" \ + %{?with_runqslower:VMLINUX_BTF=$(rpm -ql kernel-vmlinux | head -n 1)} \ + %{?with_verbose:V=1} # perf %if %{with perf} -%{__make} -C tools/perf all man \ +%{__make} -j1 -C tools/perf all man \ %ifarch %{x8664} IS_X86_64=1 \ %{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \ @@ -462,6 +541,7 @@ cd tools/usb/usbip %{__autoheader} %{__automake} %configure \ + CFLAGS="%{rpmcflags} $Wstringop $Waddressof" \ --disable-silent-rules \ --with-usbids-dir=/lib/hwdata %{__make} @@ -491,7 +571,7 @@ cd linux-%{basever} CPUFREQ_BENCH=false %find_lang cpupower -mv cpupower.lang .. +%{__mv} cpupower.lang .. install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir}} cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/cpupower.service @@ -506,7 +586,7 @@ install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_ %endif %if %{with perf} -%{__make} -C tools/perf -j1 install install-man \ +%{__make} -C tools/perf install install-man \ %ifarch %{x8664} IS_X86_64=1 \ %{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \ @@ -520,6 +600,7 @@ install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_ prefix=%{_prefix} \ perfexecdir=%{_datadir}/perf-core \ template_dir=%{_datadir}/perf-core/templates \ + bash_compdir=%{bash_compdir} \ lib=%{_lib} \ DESTDIR=$RPM_BUILD_ROOT @@ -553,7 +634,14 @@ install -p tools/iio/{iio_event_monitor,iio_generic_buffer,lsiio} $RPM_BUILD_ROO install -p tools/laptop/freefall/freefall $RPM_BUILD_ROOT%{_sbindir} -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 @@ -573,6 +661,9 @@ install -d $RPM_BUILD_ROOT%{_mandir}/man8 # gen_init_cpio install -p usr/gen_init_cpio $RPM_BUILD_ROOT%{_bindir}/gen_init_cpio +# packaged in man-pages (5.02) +%{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/bpf-helpers.7* + %clean rm -rf $RPM_BUILD_ROOT @@ -603,9 +694,11 @@ 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} %{x8664} x32 %attr(755,root,root) %{_bindir}/centrino-decode @@ -636,6 +729,10 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/cpufreq.h %{_includedir}/cpuidle.h +%files -n bash-completion-cpupower +%defattr(644,root,root,755) +%{bash_compdir}/cpupower + %ifarch %{ix86} %{x8664} x32 %files hv %defattr(644,root,root,755) @@ -653,9 +750,11 @@ rm -rf $RPM_BUILD_ROOT %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 @@ -683,6 +782,10 @@ rm -rf $RPM_BUILD_ROOT %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) @@ -704,6 +807,10 @@ rm -rf $RPM_BUILD_ROOT /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)