X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-tools.spec;h=ff65f53edffe9bc1f738413221d2b23f5dd0df68;hb=c3fda35;hp=b5788e888f53c36b0d41b01707e40fc470e07baf;hpb=4029d6417470b304f062ed80e3561fcda2edac6c;p=packages%2Fkernel-tools.git diff --git a/kernel-tools.spec b/kernel-tools.spec index b5788e8..ff65f53 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,17 +12,15 @@ %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.19 -%define postver .26 +%define basever 6.0 +%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 @@ -29,17 +28,20 @@ Version: %{basever}%{postver} Release: 1 License: GPL v2 Group: Applications/System -Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz -# Source0-md5: 740a90cf810c2105df8ee12e5d0bb900 +Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%{basever}.tar.xz +# Source0-md5: d681bd1d62d48049a4874646f6774d92 Source1: cpupower.service Source2: cpupower.config +Source3: cpupower@.service %if "%{postver}" != ".0" -Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz -# Patch0-md5: c03985e05f145c7a94f90181b9d1e6cb +Patch0: https://www.kernel.org/pub/linux/kernel/v6.x/patch-%{version}.xz +# Patch0-md5: 5a015eeaa9a3bf5bea84290f54ccf48d %endif Patch1: x32.patch +Patch2: regex.patch Patch3: %{name}-perf-update.patch -URL: http://www.kernel.org/ +Patch4: %{name}-perf-gtk2.patch +URL: https://www.kernel.org/ BuildRequires: bison BuildRequires: docutils BuildRequires: flex @@ -51,27 +53,37 @@ BuildRequires: pciutils-devel BuildRequires: pkgconfig BuildRequires: python3 BuildRequires: python3-modules +BuildRequires: readline-devel 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.?} +BuildRequires: libcap-devel %{?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 @@ -84,12 +96,24 @@ BuildRequires: libtool >= 2:2 BuildRequires: libwrap-devel BuildRequires: udev-devel %endif +# /usr/bin/turbostat +Conflicts: pmtools < 20110323-2 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) # otherwise /usr/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character %define _enable_debug_packages 0 -%define makeopts CC="%{__cc}" %{?with_verbose:V=1} +%ifarch ppc ppc64 +%define makearch powerpc +%else +%ifarch aarch64 +%define makearch arm64 +%else +%define makearch %{_target_base_arch} +%endif +%endif + +%define makeopts ARCH=%{makearch} CC="%{__cc}" %{?with_verbose:V=1} %description This package contains the software from tools/ subdirectory from Linux @@ -144,6 +168,20 @@ 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 +BuildArch: noarch + +%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 @@ -160,8 +198,8 @@ Summary: perf profiler tool Summary(pl.UTF-8): Narzędzie profilujące perf Group: Applications/System Suggests: binutils -Obsoletes: perf-core -Obsoletes: perf-slang +Obsoletes: kernel-tools-perf-core < 3.16.2 +Obsoletes: kernel-tools-perf-slang < 3.16.2 %description perf Perf is a profiler tool for Linux 2.6+ based systems that abstracts @@ -260,9 +298,7 @@ Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla polecenia perf Group: Applications/Shells Requires: %{name}-perf = %{version}-%{release} Requires: bash-completion -%if "%{_rpmversion}" >= "5" BuildArch: noarch -%endif %description -n bash-completion-perf Bash completion for perf command. @@ -276,9 +312,7 @@ 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). @@ -376,16 +410,32 @@ cd linux-%{basever} %endif %patch1 -p1 +%patch2 -p1 %patch3 -p1 +%patch4 -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#share/perf-core#g' tools/perf/Makefile.config +%{__sed} -i -e 's#libexec/perf-core#%{_lib}/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 @@ -396,7 +446,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}" \ @@ -406,45 +456,44 @@ CFLAGS="%{rpmcflags}" \ # HyperV is Windows based, x86 specific %ifarch %{ix86} %{x8664} x32 %{__make} -C tools/hv \ - CC="%{__cc}" \ + %{makeopts} \ OPTFLAGS="%{rpmcflags}" %endif CFLAGS="%{rpmcflags}" \ %{__make} -C tools/iio -j1 \ - CC="%{__cc}" \ - %{?with_verbose:V=1} + %{makeopts} %{__make} -C tools/laptop/freefall \ - CC="%{__cc}" \ + %{makeopts} \ CFLAGS="%{rpmcflags}" # make bpftool first, top-level bpf CFLAGS cause includes conflict CFLAGS="%{rpmcflags}" \ %{__make} -C tools/bpf/bpftool \ - CC="%{__cc}" \ - %{?with_verbose:V=1} + %{makeopts} CFLAGS="%{rpmcflags}" \ %{__make} -C tools/bpf \ - CC="%{__cc}" \ + %{makeopts} \ EXTRA_CFLAGS="%{rpmcflags}" \ - %{?with_verbose:V=1} + %{?with_runqslower:VMLINUX_BTF=$(rpm -ql kernel-vmlinux | head -n 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} \ %endif - %{!?with_gtk:NO_GTK2=1} \ + %{?with_gtk:GTK2=1} \ %{!?with_libunwind:NO_LIBUNWIND=1} \ %{makeopts} \ - CFLAGS_OPTIMIZE="%{rpmcflags}" \ + EXTRA_CFLAGS="%{rpmcflags}" \ + VF=1 \ WERROR=0 \ prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ + perfexecdir=%{_libdir}/perf-core \ lib=%{_lib} \ template_dir=%{_datadir}/perf-core/templates %endif @@ -459,13 +508,13 @@ CFLAGS="%{rpmcflags}" \ %ifarch %{ix86} x32 %{__make} -C tools/power/cpupower/debug/i386 centrino-decode powernow-k8-decode \ - CC="%{__cc}" \ + %{makeopts} \ CFLAGS="%{rpmcflags}" %endif %ifarch %{x8664} x32 %{__make} -C tools/power/cpupower/debug/x86_64 centrino-decode powernow-k8-decode \ - CC="%{__cc}" \ + %{makeopts} \ CFLAGS="%{rpmcflags}" %endif %endif @@ -473,15 +522,15 @@ CFLAGS="%{rpmcflags}" \ %ifarch %{ix86} %{x8664} x32 CFLAGS="%{rpmcflags}" \ %{__make} -C tools/power/x86/x86_energy_perf_policy \ - CC="%{__cc}" + %{makeopts} CFLAGS="%{rpmcflags}" \ %{__make} -C tools/power/x86/turbostat \ - CC="%{__cc}" + %{makeopts} %endif %{__make} -C tools/thermal/tmon \ - CC="%{__cc}" \ + %{makeopts} \ OPTFLAGS="%{rpmcflags}" # usbip-utils @@ -493,6 +542,7 @@ cd tools/usb/usbip %{__autoheader} %{__automake} %configure \ + CFLAGS="%{rpmcflags} $Wstringop $Waddressof" \ --disable-silent-rules \ --with-usbids-dir=/lib/hwdata %{__make} @@ -501,7 +551,7 @@ cd ../../.. # page-types, slabinfo %{__make} -C tools/vm page-types slabinfo \ - CC="%{__cc}" \ + %{makeopts} CFLAGS="%{rpmcflags} -Wall -Wextra -I../lib" # gen_init_cpio @@ -522,11 +572,12 @@ 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 cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/cpupower +cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/cpupower@.service %ifarch %{ix86} x32 install -p tools/power/cpupower/debug/i386/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} @@ -537,27 +588,27 @@ 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 \ %ifarch %{x8664} IS_X86_64=1 \ %{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \ %endif - %{!?with_gtk:NO_GTK2=1} \ + %{?with_gtk:GTK2=1} \ %{!?with_libunwind:NO_LIBUNWIND=1} \ - CC="%{__cc}" \ - CFLAGS_OPTIMIZE="%{rpmcflags}" \ + %{makeopts} \ + EXTRA_CFLAGS="%{rpmcflags}" \ WERROR=0 \ - %{?with_verbose:V=1} \ prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ + perfexecdir=%{_libdir}/perf-core \ template_dir=%{_datadir}/perf-core/templates \ + bash_compdir=%{bash_compdir} \ lib=%{_lib} \ DESTDIR=$RPM_BUILD_ROOT -%py_comp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python -%py_ocomp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python +%py_comp $RPM_BUILD_ROOT%{_libdir}/perf-core/scripts/python +%py_ocomp $RPM_BUILD_ROOT%{_libdir}/perf-core/scripts/python -%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/perf-core/tests +%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/perf-core/tests %endif %if %{with usbip} @@ -645,7 +696,6 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_sbindir}/dslm %attr(755,root,root) %{_sbindir}/freefall %attr(755,root,root) %{_sbindir}/page-types -%{_mandir}/man7/bpf-helpers.7* %{_mandir}/man8/bpftool*.8* %{_mandir}/man8/tmon.8* %ifarch %{ix86} %{x8664} x32 @@ -664,6 +714,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/cpupower %{_mandir}/man1/cpupower*.1* %{systemdunitdir}/cpupower.service +%{systemdunitdir}/cpupower@.service %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cpupower %files cpupower-libs @@ -677,6 +728,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) @@ -696,31 +751,35 @@ rm -rf $RPM_BUILD_ROOT %{_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 %{_datadir}/perf-core/scripts/perl -%dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util -%dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib -%dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf -%dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace -%{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/*.pm -%dir %{_datadir}/perf-core/scripts/perl/bin -%attr(755,root,root) %{_datadir}/perf-core/scripts/perl/bin/* -%{_datadir}/perf-core/scripts/perl/*.pl - -%dir %{_datadir}/perf-core/scripts/python -%dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util -%dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib -%dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf -%dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace -%{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace/*.py* -%dir %{_datadir}/perf-core/scripts/python/bin -%attr(755,root,root) %{_datadir}/perf-core/scripts/python/bin/* -%{_datadir}/perf-core/scripts/python/*.py* +%dir %{_libdir}/perf-core +%attr(755,root,root) %{_libdir}/perf-core/perf-archive +%attr(755,root,root) %{_libdir}/perf-core/perf-iostat +%dir %{_libdir}/perf-core/dlfilters +%attr(755,root,root) %{_libdir}/perf-core/dlfilters/dlfilter-show-cycles.so +%attr(755,root,root) %{_libdir}/perf-core/dlfilters/dlfilter-test-api-v0.so + +%dir %{_libdir}/perf-core/scripts + +%dir %{_libdir}/perf-core/scripts/perl +%dir %{_libdir}/perf-core/scripts/perl/Perf-Trace-Util +%dir %{_libdir}/perf-core/scripts/perl/Perf-Trace-Util/lib +%dir %{_libdir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf +%dir %{_libdir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace +%{_libdir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/*.pm +%dir %{_libdir}/perf-core/scripts/perl/bin +%attr(755,root,root) %{_libdir}/perf-core/scripts/perl/bin/* +%{_libdir}/perf-core/scripts/perl/*.pl + +%dir %{_libdir}/perf-core/scripts/python +%dir %{_libdir}/perf-core/scripts/python/Perf-Trace-Util +%dir %{_libdir}/perf-core/scripts/python/Perf-Trace-Util/lib +%dir %{_libdir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf +%dir %{_libdir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace +%{_libdir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace/*.py* +%dir %{_libdir}/perf-core/scripts/python/bin +%attr(755,root,root) %{_libdir}/perf-core/scripts/python/bin/* +%{_libdir}/perf-core/scripts/python/*.py* %dir %{_libdir}/traceevent %dir %{_libdir}/traceevent/plugins @@ -730,6 +789,8 @@ rm -rf $RPM_BUILD_ROOT %{_prefix}/lib/perf/examples %{_prefix}/lib/perf/include +%{_includedir}/perf + %if %{with multilib} %files perf-vdso32 %defattr(644,root,root,755)