X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-tools.spec;h=369261fcdac0546dd6a19a2fa421f19c537cfc7b;hb=95c16f37caaec9845c2eee586efb93a0ea82d672;hp=40a9534e827d7ac0ad6779a02f4cc9703dcb22b1;hpb=49fba13ae2ec6363013312dca76278084e60f9ea;p=packages%2Fkernel-tools.git diff --git a/kernel-tools.spec b/kernel-tools.spec index 40a9534..369261f 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -1,60 +1,246 @@ -# +# TODO: +# - redefine: PACKAGE_BUGREPORT=cpufreq@vger.kernel.org +# - add -n python-perf? +# - add bcond to disable building docs (perf docs) +# - install of perf links perf binary again + # Conditional build: %bcond_without verbose # verbose build (V=1) +%bcond_without perf # perf tools +%bcond_without gtk # GTK+ 2.x perf support +%bcond_without libunwind # libunwind perf support +%bcond_without multilib # multilib perf support + +%ifarch x32 +%undefine with_libunwind +%endif +%ifnarch %{x8664} +%undefine with_multilib +%endif -%define rel 0.1 -%define basever 3.6 -%define postver .6 +%define basever 4.4 +%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: %{rel} +Release: 1 License: GPL v2 -Group: Base -Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz -# Source0-md5: 1a1760420eac802c541a20ab51a093d1 +Group: Applications/System +Source0: https://www.kernel.org/pub/linux/kernel/v4.x/linux-%{basever}.tar.xz +# Source0-md5: 9a78fa2eb6c68ca5a40ed5af08142599 +Source1: cpupower.service +Source2: cpupower.config %if "%{postver}" != ".0" -Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.bz2 -# Patch0-md5: 363e730147333182616cc687345e7fe2 +Patch0: https://www.kernel.org/pub/linux/kernel/v4.x/patch-%{version}.xz +# Patch0-md5: 3a465c7cf55ec9dbf2d72d9292aa5fde %endif +Patch1: x32.patch +URL: http://www.kernel.org/ +BuildRequires: gettext-tools +BuildRequires: pciutils-devel +BuildRequires: rpmbuild(macros) >= 1.647 BuildRequires: tar >= 1:1.22 BuildRequires: xz -Requires: %{name}-libs = %{version}-%{release} -Provides: cpufreq-utils = 1:009-0.6.p1 -Provides: cpufrequtils = 1:009-0.6.p1 +%if %{with perf} +BuildRequires: asciidoc +BuildRequires: audit-libs-devel +BuildRequires: binutils-devel +BuildRequires: bison +BuildRequires: docbook-dtd45-xml +BuildRequires: docbook-style-xsl +BuildRequires: elfutils-devel +BuildRequires: flex +%if %{with multilib} +BuildRequires: gcc-multilib-32 +BuildRequires: gcc-multilib-x32 +%endif +%{?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 +%if %{with gtk} +BuildRequires: gtk+2-devel >= 2.0 +BuildRequires: pkgconfig +%endif +%endif +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 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: cpupowerutils = 1:009-0.6.p1 -Obsoletes: cpufreq-utils < 1:009-0.6.p1 -Obsoletes: cpufrequtils < 1:009-0.6.p1 Obsoletes: cpupowerutils < 1:009-0.6.p1 Obsoletes: cpuspeed < 1:1.5-16 -BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%description -This package contains the tools/ directory from the kernel source and -the supporting documentation. +%description cpupower +cpupower is a collection of tools to examine and tune power saving +related features of your processor. -%package libs -Summary: Libraries for the kernels-tools -License: GPL v2 +%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 library +Summary(pl.UTF-8): Biblioteka cpupower Group: Libraries -%description libs -This package contains the libraries built from the tools/ directory -from the kernel source. +%description cpupower-libs +cpupower library. -%package libs-devel -Summary: Assortment of tools for the Linux kernel -License: GPL v2 +%description cpupower-libs -l pl.UTF-8 +Biblioteka cpupower. + +%package cpupower-libs-devel +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}-cpupower-libs = %{version}-%{release} Provides: cpupowerutils-devel = 1:009-0.6.p1 -Provides: kernel-tools-devel Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 +Conflicts: cpufrequtils-devel + +%description cpupower-libs-devel +Development files for the cpupower library. + +%description cpupower-libs-devel -l pl.UTF-8 +Pliki programistyczne biblioteki cpupower. + +%package perf +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 +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. -%description libs-devel -This package contains the development files for the tools/ directory -from the kernel source. +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 - VDSO 32-bit ABI reader +Summary(pl.UTF-8): Narzędzie profilujące perf - odczyt VDSO dla ABI 32-bitowego +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. + +%description perf-vdso32 -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 narzędzie perf-read-vdso32 do odczytu VDSO dla +binariów 32-bitowych w trybie 64-bitowym. + +%package perf-vdsox32 +Summary: perf profiler tool - VDSO x32 ABI reader +Summary(pl.UTF-8): Narzędzie profilujące perf - odczyt VDSO dla ABI x32 +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. + +%description perf-vdsox32 -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 narzędzie perf-read-vdso32 do odczytu VDSO dla +binariów ABI x32 w trybie 64-bitowym. + +%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 @@ -64,41 +250,78 @@ 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 \ - CC="%{__cc}" \ - %{?with_verbose:V=1} \ - CPUFREQ_BENCH=false + %{makeopts} \ + CPUFREQ_BENCH=false \ + OPTIMIZATION="%{rpmcflags}" \ + STRIPCMD=true -%ifarch %{ix86} +%ifarch %{ix86} x32 %{__make} -C tools/power/cpupower/debug/i386 centrino-decode powernow-k8-decode \ CC="%{__cc}" \ - %{?with_verbose:V=1} + CFLAGS="%{rpmcflags}" %endif -%ifarch %{x8664} +%ifarch %{x8664} x32 %{__make} -C tools/power/cpupower/debug/x86_64 centrino-decode powernow-k8-decode \ CC="%{__cc}" \ - %{?with_verbose:V=1} + CFLAGS="%{rpmcflags}" %endif -%ifarch %{ix86} %{x8664} +%ifarch %{ix86} %{x8664} x32 %{__make} -C tools/power/x86/x86_energy_perf_policy \ CC="%{__cc}" \ - %{?with_verbose:V=1} + CFLAGS="%{rpmcflags}" +CFLAGS="%{rpmcflags}" \ %{__make} -C tools/power/x86/turbostat \ + CC="%{__cc}" +%endif + +# page-types, slabinfo +%{__make} -C tools/vm page-types slabinfo \ CC="%{__cc}" \ - %{?with_verbose:V=1} + CFLAGS="%{rpmcflags} -Wall -Wextra -I../lib" + +%if %{with perf} +%{__make} -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_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} \ @@ -107,72 +330,159 @@ cd linux-%{basever} %find_lang cpupower mv cpupower.lang .. -%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 - +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} 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 \ +%{__make} -C tools/power/x86/x86_energy_perf_policy install \ 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 \ +%{__make} -C tools/power/x86/turbostat install \ 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 %endif + +%if %{with perf} +%{__make} -C tools/perf -j1 install install-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_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 + +%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 +install -p usr/gen_init_cpio $RPM_BUILD_ROOT%{_bindir}/gen_init_cpio + %clean rm -rf $RPM_BUILD_ROOT -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%post cpupower-libs -p /sbin/ldconfig +%postun cpupower-libs -p /sbin/ldconfig -%files -f cpupower.lang +%post cpupower +%systemd_post cpupower.service + +%preun cpupower +%systemd_preun cpupower.service + +%postun cpupower +%systemd_reload + +%files %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/cpupower -%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 -%{_mandir}/man[1-8]/cpupower* -%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 -%files libs +%files cpupower -f cpupower.lang +%defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/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 libs-devel +%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 + +%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}/traceevent +%dir %{_libdir}/traceevent/plugins +%attr(755,root,root) %{_libdir}/traceevent/plugins/plugin_*.so + +%if %{with multilib} +%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