X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-tools.spec;h=46a3ed0c43a213f96abf937c462856144ed8c76f;hb=e8e6f5558292097422ce00cb21bbcd6a99654506;hp=3fb95a63d0636f527c00f78814805c04ac0cffbf;hpb=4258066f726daddb9919a8331e115a3fa8dcdc5b;p=packages%2Fkernel-tools.git diff --git a/kernel-tools.spec b/kernel-tools.spec index 3fb95a6..46a3ed0 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -1,55 +1,90 @@ -# TODO -# - BR deps for -perf -# - asciidoc used at install stage of perf (should build doc in build section) -# - different packages for perf-slang and perf-gtk +# TODO: +# - redefine: PACKAGE_BUGREPORT=cpufreq@vger.kernel.org +# - add -n python-perf? +# - without perf bcond does not work (it still builds it) +# - add bcond to disable building docs (perf docs) +# - install of perf compiles things over again -# # Conditional build: %bcond_without verbose # verbose build (V=1) -%bcond_with perf # perf tools (unfinished) +%bcond_without perf # perf tools +%bcond_without gtk # GTK+ 2.x perf support +%bcond_without libunwind # libunwind perf support -%define rel 0.3 -%define basever 3.6 -%define postver .7 +%ifarch x32 +%undefine with_libunwind +%endif + +%define basever 4.1 +%define postver .6 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: %{rel} +Release: 2 License: GPL v2 Group: Applications/System -Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz -# Source0-md5: 1a1760420eac802c541a20ab51a093d1 -%if "%{postver}" != ".0" -Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2 -# Patch0-md5: e222aa73f705b8874e1ba880f99593ce -%endif +Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz +# Source0-md5: fe9dc0f6729f36400ea81aa41d614c37 Source1: cpupower.service Source2: cpupower.config +%if "%{postver}" != ".0" +Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz +# Patch0-md5: 7dea69f02c906206f88df48085069eb6 +%endif +Patch1: x32.patch +URL: http://www.kernel.org/ +%ifarch %{x8664} +BuildRequires: gcc-multilib-32 +BuildRequires: gcc-multilib-x32 +%endif +BuildRequires: gettext-tools +BuildRequires: pciutils-devel BuildRequires: rpmbuild(macros) >= 1.647 BuildRequires: tar >= 1:1.22 BuildRequires: xz %if %{with perf} BuildRequires: asciidoc -BuildRequires: newt-devel +BuildRequires: audit-libs-devel +BuildRequires: binutils-devel +BuildRequires: bison +BuildRequires: docbook-dtd45-xml +BuildRequires: docbook-style-xsl +BuildRequires: elfutils-devel +BuildRequires: flex +%{?with_libunwind:BuildRequires: libunwind-devel >= 0.99} +BuildRequires: numactl-devel +BuildRequires: perl-devel >= 5.1 +BuildRequires: python-devel BuildRequires: rpm-pythonprov BuildRequires: slang-devel BuildRequires: xmlto -# provides perf.h which util/parse-events.l loads via ../perf.h, and -I/usr/include/slang makes it being loaded first -BuildConflicts: Firebird-devel +%if %{with gtk} +BuildRequires: gtk+2-devel >= 2.0 +BuildRequires: pkgconfig +%endif %endif -Requires: %{name}-libs = %{version}-%{release} 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} %description -This package contains the tools/ directory from the kernel source and -the supporting documentation. +This package contains the software from tools/ subdirectory from Linux +kernel source and the supporting documentation. + +%description -l pl.UTF-8 +Ten pakiet zawiera oprogramowanie z podkatalogu tools/ ze źródeł jądra +Linuksa oraz związaną z nim dokumentację. %package cpupower Summary: cpupower - Shows and sets processor power related values +Summary(pl.UTF-8): cpupower - wyświetlanie i ustawianie wartości związanych z zużyciem energii przez procesor Group: Applications/System Requires(post,preun,postun): systemd-units >= 38 +Requires: %{name}-cpupower-libs = %{version}-%{release} Requires: systemd-units >= 0.38 Provides: cpufreq-utils = 1:009-0.6.p1 Provides: cpufrequtils = 1:009-0.6.p1 @@ -63,30 +98,45 @@ Obsoletes: cpuspeed < 1:1.5-16 cpupower is a collection of tools to examine and tune power saving related features of your processor. +%description cpupower -l pl.UTF-8 +cpupower to zbiór narzędzi do sprawdzania i ustawiania opcji procesora +związanych z oszczędzaniem energii. + %package cpupower-libs -Summary: cpupower libraries -License: GPL v2 +Summary: cpupower library +Summary(pl.UTF-8): Biblioteka cpupower Group: Libraries %description cpupower-libs -cpupower libraries. +cpupower library. + +%description cpupower-libs -l pl.UTF-8 +Biblioteka cpupower. %package cpupower-libs-devel -Summary: Development files for the cpupower libraries -License: GPL v2 +Summary: Development files for the cpupower library +Summary(pl.UTF-8): Pliki programistyczne biblioteki cpupower Group: Development/Libraries -Requires: kernel-tools = %{version}-%{release} -Requires: kernel-tools-libs = %{version}-%{release} +Requires: %{name} = %{version}-%{release} +Requires: %{name}-cpupower-libs = %{version}-%{release} +Provides: cpufrequtils-devel = 1:009-0.6.p1 Provides: cpupowerutils-devel = 1:009-0.6.p1 -Provides: kernel-tools-devel +Obsoletes: cpufrequtils-devel < 1:009-0.6.p1 Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 %description cpupower-libs-devel -Development files for the cpupower libraries. +Development files for the cpupower library. + +%description cpupower-libs-devel -l pl.UTF-8 +Pliki programistyczne biblioteki cpupower. %package perf -Summary: perf tool +Summary: perf profiler tool +Summary(pl.UTF-8): Narzędzie profilujące perf Group: Applications/System +Suggests: binutils +Obsoletes: perf-core +Obsoletes: perf-slang %description perf Perf is a profiler tool for Linux 2.6+ based systems that abstracts @@ -94,6 +144,87 @@ away CPU hardware differences in Linux performance measurements and presents a simple commandline interface. Perf is based on the perf_events interface exported by recent versions of the Linux kernel. +This package contains core files, scripts and text interface (TUI). + +%description perf -l pl.UTF-8 +Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+, +odseparowujące od różnic sprzętowych między pomiarami wydajności w +zależności od procesora oraz udostępniające prosty interfejs linii +poleceń. Perf jest oparty na interfejsie perf_events eksportowanym +przez nowe wersje jądra Linuksa. + +Ten pakiet zawiera podstawowe pliki, skrypty oraz interfejs tekstowy +(TUI). + +%package perf-vdso32 +Summary: perf profiler tool +Summary(pl.UTF-8): Narzędzie profilujące perf +Group: Applications/System +Requires: %{name}-perf = %{version}-%{release} + +%description perf-vdso32 +Perf is a profiler tool for Linux 2.6+ based systems that abstracts +away CPU hardware differences in Linux performance measurements and +presents a simple commandline interface. Perf is based on the +perf_events interface exported by recent versions of the Linux kernel. + +This package contains perf-read-vdso32 tool for reading the 32-bit +compatibility VDSO in 64-bit mode. + +%package perf-vdsox32 +Summary: perf profiler tool +Summary(pl.UTF-8): Narzędzie profilujące perf +Group: Applications/System +Requires: %{name}-perf = %{version}-%{release} + +%description perf-vdsox32 +Perf is a profiler tool for Linux 2.6+ based systems that abstracts +away CPU hardware differences in Linux performance measurements and +presents a simple commandline interface. Perf is based on the +perf_events interface exported by recent versions of the Linux kernel. + +This package contains perf-read-vdso32 tool for reading the x32 mode +32-bit compatibility VDSO in 64-bit mode. + +%package perf-gtk +Summary: perf profiler tool (GTK+ 2 GUI) +Summary(pl.UTF-8): Narzędzie profilujące perf (interfejs graficzny GTK+ 2) +Group: X11/Applications +Requires: %{name}-perf = %{version}-%{release} + +%description perf-gtk +Perf is a profiler tool for Linux 2.6+ based systems that abstracts +away CPU hardware differences in Linux performance measurements and +presents a simple commandline interface. Perf is based on the +perf_events interface exported by recent versions of the Linux kernel. + +This package contains GTK+ 2 based GUI. + +%description perf-gtk -l pl.UTF-8 +Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+, +odseparowujące od różnic sprzętowych między pomiarami wydajności w +zależności od procesora oraz udostępniające prosty interfejs linii +poleceń. Perf jest oparty na interfejsie perf_events eksportowanym +przez nowe wersje jądra Linuksa. + +Ten pakiet zawiera graficzny interfejs oparty na GTK+ 2. + +%package -n bash-completion-perf +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: bash-completion +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description -n bash-completion-perf +Bash completion for perf command. + +%description -n bash-completion-perf -l pl.UTF-8 +Bashowe uzupełnianie parametrów dla polecenia perf. + %prep %setup -qc cd linux-%{basever} @@ -102,61 +233,77 @@ cd linux-%{basever} %patch0 -p1 %endif +%patch1 -p1 + +sed -i -e 's#libexec/perf-core#%{_datadir}/perf-core#g' tools/perf/config/Makefile + %build cd linux-%{basever} +# Simple Disk Sleep Monitor +%{__cc} %{rpmcppflags} %{rpmcflags} %{rpmldflags} Documentation/laptops/dslm.c -o dslm + # cpupower %{__make} -C tools/power/cpupower \ %{makeopts} \ - CPUFREQ_BENCH=false + CPUFREQ_BENCH=false \ + OPTIMIZATION="%{rpmcflags}" \ + STRIPCMD=true -%ifarch %{ix86} +%ifarch %{ix86} x32 %{__make} -C tools/power/cpupower/debug/i386 centrino-decode powernow-k8-decode \ - %{makeopts} \ + CC="%{__cc}" \ + CFLAGS="%{rpmcflags}" %endif -%ifarch %{x8664} +%ifarch %{x8664} x32 %{__make} -C tools/power/cpupower/debug/x86_64 centrino-decode powernow-k8-decode \ - %{makeopts} + CC="%{__cc}" \ + CFLAGS="%{rpmcflags}" %endif -%ifarch %{ix86} %{x8664} +%ifarch %{ix86} %{x8664} x32 %{__make} -C tools/power/x86/x86_energy_perf_policy \ - %{makeopts} + CC="%{__cc}" \ + CFLAGS="%{rpmcflags}" +CFLAGS="%{rpmcflags}" \ %{__make} -C tools/power/x86/turbostat \ - %{makeopts} + CC="%{__cc}" %endif -%if %{with perf} -# perf slang version -PWD=${PWD:-$(pwd)} -install -d $PWD/perf-{slang,gtk} -%{__make} -C tools/perf \ - O=$PWD/perf-slang \ - NO_GTK2=1 \ - %{makeopts} \ - prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ - template_dir=%{_datadir}/perf-core/templates +# page-types, slabinfo +%{__make} -C tools/vm page-types slabinfo \ + CC="%{__cc}" \ + CFLAGS="%{rpmcflags} -Wall -Wextra -I../lib" -# perf gtk version -%{__make} -C tools/perf \ - O=$PWD/perf-gtk \ +%if %{with perf} +%{__make} -C tools/perf all man \ +%ifarch %{x8664} + IS_X86_64=1 \ +%endif + %{!?with_gtk:NO_GTK2=1} \ + %{!?with_libunwind:NO_LIBUNWIND=1} \ %{makeopts} \ + CFLAGS_OPTIMIZE="%{rpmcflags}" \ + WERROR=0 \ prefix=%{_prefix} \ perfexecdir=%{_datadir}/perf-core \ + lib=%{_lib} \ template_dir=%{_datadir}/perf-core/templates %endif # gen_init_cpio %{__make} -C usr gen_init_cpio \ %{makeopts} \ + CFLAGS="%{rpmcflags}" %install rm -rf $RPM_BUILD_ROOT + cd linux-%{basever} +install -d $RPM_BUILD_ROOT%{_sbindir} -%{__make} -C tools/power/cpupower install \ +%{__make} -C tools/power/cpupower install \ DESTDIR=$RPM_BUILD_ROOT \ libdir=%{_libdir} \ mandir=%{_mandir} \ @@ -169,71 +316,50 @@ 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 -%ifarch %{ix86} -cd tools/power/cpupower/debug/i386 -install -p centrino-decode $RPM_BUILD_ROOT%{_bindir}/centrino-decode -install -p powernow-k8-decode $RPM_BUILD_ROOT%{_bindir}/powernow-k8-decode -cd - +%ifarch %{ix86} x32 +install -p tools/power/cpupower/debug/i386/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} %endif -%ifarch %{x8664} -cd tools/power/cpupower/debug/x86_64 -install -p centrino-decode $RPM_BUILD_ROOT%{_bindir}/centrino-decode -install -p powernow-k8-decode $RPM_BUILD_ROOT%{_bindir}/powernow-k8-decode -cd - +%ifarch %{x8664} x32 +install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} %endif -%ifarch %{ix86} %{x8664} +install -p tools/vm/slabinfo $RPM_BUILD_ROOT%{_bindir} +install -p tools/vm/page-types $RPM_BUILD_ROOT%{_sbindir} +install -p dslm $RPM_BUILD_ROOT%{_sbindir} + +%ifarch %{ix86} %{x8664} x32 install -d $RPM_BUILD_ROOT%{_mandir}/man8 -# broken makefile, install manually -%if 0 %{__make} install \ -C tools/power/x86/x86_energy_perf_policy \ DESTDIR=$RPM_BUILD_ROOT -%else -cd tools/power/x86/x86_energy_perf_policy -install -p x86_energy_perf_policy $RPM_BUILD_ROOT%{_bindir} -install -p x86_energy_perf_policy.8 $RPM_BUILD_ROOT%{_mandir}/man8 -cd - -%endif -# broken makefile, install manually -%if 0 %{__make} install \ -C tools/power/x86/turbostat \ DESTDIR=$RPM_BUILD_ROOT -%else -cd tools/power/x86/turbostat -install -p turbostat $RPM_BUILD_ROOT%{_bindir}/turbostat -install -p turbostat.8 $RPM_BUILD_ROOT%{_mandir}/man8 -cd - -%endif %endif %if %{with perf} -# perf slang -PWD=${PWD:-$(pwd)} -# perf slang version %{__make} -j1 install install-man \ -C tools/perf \ - O=$PWD/perf-slang \ - NO_GTK2=1 \ +%ifarch %{x8664} + IS_X86_64=1 \ +%endif + %{!?with_gtk:NO_GTK2=1} \ + %{!?with_libunwind:NO_LIBUNWIND=1} \ CC="%{__cc}" \ + CFLAGS_OPTIMIZE="%{rpmcflags}" \ + WERROR=0 \ %{?with_verbose:V=1} \ prefix=%{_prefix} \ perfexecdir=%{_datadir}/perf-core \ template_dir=%{_datadir}/perf-core/templates \ + lib=%{_lib} \ DESTDIR=$RPM_BUILD_ROOT -# perf gtk -%{__make} -j1 install install-man \ - -C tools/perf \ - O=$PWD/perf-gtk \ - CC="%{__cc}" \ - %{?with_verbose:V=1} \ - prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ - template_dir=%{_datadir}/perf-core/templates \ - DESTDIR=$RPM_BUILD_ROOT +%py_comp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python +%py_ocomp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python + +%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/perf-core/tests %endif # gen_init_cpio @@ -256,42 +382,47 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%ifarch %{ix86} %{x8664} +%attr(755,root,root) %{_bindir}/gen_init_cpio +%attr(755,root,root) %{_bindir}/slabinfo +%attr(755,root,root) %{_sbindir}/dslm +%attr(755,root,root) %{_sbindir}/page-types +%ifarch %{ix86} %{x8664} x32 %attr(755,root,root) %{_bindir}/centrino-decode %attr(755,root,root) %{_bindir}/powernow-k8-decode %endif -%ifarch %{ix86} %{x8664} +%ifarch %{ix86} %{x8664} x32 %attr(755,root,root) %{_bindir}/turbostat %attr(755,root,root) %{_bindir}/x86_energy_perf_policy -%{_mandir}/man8/turbostat* -%{_mandir}/man8/x86_energy_perf_policy* +%{_mandir}/man8/turbostat.8* +%{_mandir}/man8/x86_energy_perf_policy.8* %endif -%attr(755,root,root) %{_bindir}/gen_init_cpio %files cpupower -f cpupower.lang %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/cpupower -%{_mandir}/man[1-8]/cpupower* +%{_mandir}/man1/cpupower*.1* %{systemdunitdir}/cpupower.service %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cpupower %files cpupower-libs %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libcpupower.so.*.*.* -%ghost %{_libdir}/libcpupower.so.0 +%attr(755,root,root) %ghost %{_libdir}/libcpupower.so.0 %files cpupower-libs-devel %defattr(644,root,root,755) -%{_libdir}/libcpupower.so +%attr(755,root,root) %{_libdir}/libcpupower.so %{_includedir}/cpufreq.h %if %{with perf} %files perf %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/perf +%attr(755,root,root) %{_bindir}/trace %{_mandir}/man1/perf*.1* %dir %{_datadir}/perf-core %attr(755,root,root) %{_datadir}/perf-core/perf-archive +%attr(755,root,root) %{_datadir}/perf-core/perf-with-kcore %dir %{_datadir}/perf-core/scripts @@ -310,8 +441,32 @@ rm -rf $RPM_BUILD_ROOT %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 +%{_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 +%{_datadir}/perf-core/scripts/python/*.py* + +%dir %{_libdir}/traceevent +%dir %{_libdir}/traceevent/plugins +%attr(755,root,root) %{_libdir}/traceevent/plugins/plugin_*.so + +%ifarch %{x8664} +%files perf-vdso32 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/perf-read-vdso32 + +%files perf-vdsox32 +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/perf-read-vdsox32 +%endif + +%if %{with gtk} +%files perf-gtk +%defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/libperf-gtk.so +%endif + +%files -n bash-completion-perf +%defattr(644,root,root,755) +/etc/bash_completion.d/perf %endif