X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=kernel-tools.spec;h=a3319f38498957d162ceaa4104ae6eb2ffb63d95;hb=a5af531075656e920169780e43d96432ce9b061d;hp=3fb617ee90c7242590cecc87d60d4993f3847a5f;hpb=6e9d46c8e2b06801a402bbc88a9d1d016a0c000d;p=packages%2Fkernel-tools.git diff --git a/kernel-tools.spec b/kernel-tools.spec index 3fb617e..a3319f3 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -1,30 +1,44 @@ # TODO: # - redefine: PACKAGE_BUGREPORT=cpufreq@vger.kernel.org -# -n python-perf? +# - 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 -%define rel 3 -%define basever 3.9 -%define postver .5 +%ifarch x32 +%undefine with_libunwind +%endif +%ifnarch %{x8664} +%undefine with_multilib +%endif + +%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: Applications/System -Source0: http://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz -# Source0-md5: 4348c9b6b2eb3144d601e87c19d5d909 -%if "%{postver}" != ".0" -Patch0: http://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz -# Patch0-md5: aa22187ae5cd482a69097e9e59244491 -%endif +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: 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 @@ -33,21 +47,31 @@ BuildRequires: asciidoc BuildRequires: audit-libs-devel BuildRequires: binutils-devel BuildRequires: bison +BuildRequires: docbook-dtd45-xml BuildRequires: docbook-style-xsl BuildRequires: elfutils-devel BuildRequires: flex -BuildRequires: gtk+2-devel >= 2.0 -BuildRequires: libunwind-devel >= 0.99 -BuildRequires: newt-devel +%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: pkgconfig 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 @@ -65,11 +89,7 @@ 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 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 @@ -98,10 +118,9 @@ Summary(pl.UTF-8): Pliki programistyczne biblioteki cpupower Group: Development/Libraries 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 -Obsoletes: cpufrequtils-devel < 1:009-0.6.p1 Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 +Conflicts: cpufrequtils-devel %description cpupower-libs-devel Development files for the cpupower library. @@ -109,75 +128,104 @@ Development files for the cpupower library. %description cpupower-libs-devel -l pl.UTF-8 Pliki programistyczne biblioteki cpupower. -%package perf-core -Summary: perf profiler tool (core package) -Summary(pl.UTF-8): Narzędzie profilujące perf (podstawowe narzędzia) +%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-core +%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. -This package contains core files and scripts. +This package contains core files, scripts and text interface (TUI). -%description perf-core -l pl.UTF-8 +%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 i skrypty. +Ten pakiet zawiera podstawowe pliki, skrypty oraz interfejs tekstowy +(TUI). -%package perf-gtk -Summary: perf profiler tool (GTK+ GUI) -Summary(pl.UTF-8): Narzędzie profilujące perf (interfejs graficzny GTK+) -Group: X11/Applications -Requires: %{name}-perf-core = %{version}-%{release} -Provides: %{name}-perf = %{version}-%{release} +%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-gtk +%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 GTK+ based GUI. +This package contains perf-read-vdso32 tool for reading the 32-bit +compatibility VDSO in 64-bit mode. -%description perf-gtk -l pl.UTF-8 +%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 graficzny interfejs oparty na GTK+. +Ten pakiet zawiera narzędzie perf-read-vdso32 do odczytu VDSO dla +binariów 32-bitowych w trybie 64-bitowym. -%package perf-slang -Summary: perf profiler tool (Slang TUI) -Summary(pl.UTF-8): Narzędzie profilujące perf (interfejs tekstowy Slang) +%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-core = %{version}-%{release} -Provides: %{name}-perf = %{version}-%{release} +Requires: %{name}-perf = %{version}-%{release} -%description perf-slang +%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 Slang based TUI. +This package contains GTK+ 2 based GUI. -%description perf-slang -l pl.UTF-8 +%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 tekstowy interfejs oparty na bibliotece Slang. +Ten pakiet zawiera graficzny interfejs oparty na GTK+ 2. %package -n bash-completion-perf Summary: Bash completion for perf command @@ -185,6 +233,9 @@ 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. @@ -200,9 +251,16 @@ 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} \ @@ -210,54 +268,46 @@ cd linux-%{basever} OPTIMIZATION="%{rpmcflags}" \ STRIPCMD=true -%ifarch %{ix86} +%ifarch %{ix86} x32 %{__make} -C tools/power/cpupower/debug/i386 centrino-decode powernow-k8-decode \ CC="%{__cc}" \ CFLAGS="%{rpmcflags}" %endif -%ifarch %{x8664} +%ifarch %{x8664} x32 %{__make} -C tools/power/cpupower/debug/x86_64 centrino-decode powernow-k8-decode \ CC="%{__cc}" \ CFLAGS="%{rpmcflags}" %endif -%ifarch %{ix86} %{x8664} +%ifarch %{ix86} %{x8664} x32 %{__make} -C tools/power/x86/x86_energy_perf_policy \ CC="%{__cc}" \ CFLAGS="%{rpmcflags}" +CFLAGS="%{rpmcflags}" \ %{__make} -C tools/power/x86/turbostat \ - CC="%{__cc}" \ - CFLAGS="%{rpmcflags} -Wall -I../../../../arch/x86/include/uapi/" + CC="%{__cc}" %endif -# slabinfo -%{__make} -C tools/vm \ +# page-types, slabinfo +%{__make} -C tools/vm page-types slabinfo \ CC="%{__cc}" \ - CFLAGS="%{rpmcflags} -Wall -Wextra" + CFLAGS="%{rpmcflags} -Wall -Wextra -I../lib" %if %{with perf} -# perf slang version -PWD=${PWD:-$(pwd)} -install -d $PWD/perf-{slang,gtk} %{__make} -C tools/perf all man \ - O=$PWD/perf-slang \ - NO_GTK2=1 \ - %{makeopts} \ - CFLAGS_OPTIMIZE="%{rpmcflags}" \ - WERROR=0 \ - prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ - template_dir=%{_datadir}/perf-core/templates - -# perf gtk version -%{__make} -C tools/perf all man \ - O=$PWD/perf-gtk \ +%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 @@ -268,7 +318,9 @@ install -d $PWD/perf-{slang,gtk} %install rm -rf $RPM_BUILD_ROOT + cd linux-%{basever} +install -d $RPM_BUILD_ROOT%{_sbindir} %{__make} -C tools/power/cpupower install \ DESTDIR=$RPM_BUILD_ROOT \ @@ -283,64 +335,34 @@ 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} +%ifarch %{ix86} x32 install -p tools/power/cpupower/debug/i386/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} %endif -%ifarch %{x8664} +%ifarch %{x8664} x32 install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} %endif -install tools/vm/slabinfo $RPM_BUILD_ROOT%{_bindir} +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} +%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.8 $RPM_BUILD_ROOT%{_mandir}/man8 -cd - -install -p turbostat $RPM_BUILD_ROOT%{_bindir}/turbostat -%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 \ - CC="%{__cc}" \ - CFLAGS_OPTIMIZE="%{rpmcflags}" \ - WERROR=0 \ - %{?with_verbose:V=1} \ - prefix=%{_prefix} \ - perfexecdir=%{_datadir}/perf-core \ - template_dir=%{_datadir}/perf-core/templates \ - DESTDIR=$RPM_BUILD_ROOT -%{__mv} $RPM_BUILD_ROOT%{_bindir}/perf{,_slang} - -# perf gtk -%{__make} -j1 install install-man \ - -C tools/perf \ - O=$PWD/perf-gtk \ +%{__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 \ @@ -348,18 +370,18 @@ PWD=${PWD:-$(pwd)} prefix=%{_prefix} \ perfexecdir=%{_datadir}/perf-core \ template_dir=%{_datadir}/perf-core/templates \ + lib=%{_lib} \ DESTDIR=$RPM_BUILD_ROOT -%{__mv} $RPM_BUILD_ROOT%{_bindir}/perf{,_gtk} %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 -rm -r $RPM_BUILD_ROOT%{_datadir}/perf-core/tests - %clean rm -rf $RPM_BUILD_ROOT @@ -379,11 +401,13 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/gen_init_cpio %attr(755,root,root) %{_bindir}/slabinfo -%ifarch %{ix86} %{x8664} +%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.8* @@ -408,11 +432,14 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/cpufreq.h %if %{with perf} -%files perf-core +%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 @@ -436,13 +463,25 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_datadir}/perf-core/scripts/python/bin/* %{_datadir}/perf-core/scripts/python/*.py* -%files perf-gtk +%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_gtk +%attr(755,root,root) %{_bindir}/perf-read-vdso32 -%files perf-slang +%files perf-vdsox32 %defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/perf_slang +%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)