]>
Commit | Line | Data |
---|---|---|
1 | # TODO: | |
2 | # - redefine: PACKAGE_BUGREPORT=cpufreq@vger.kernel.org | |
3 | # - add -n python-perf? | |
4 | # - without perf bcond does not work (it still builds it) | |
5 | # - add bcond to disable building docs (perf docs) | |
6 | # - install of perf compiles things over again | |
7 | ||
8 | # Conditional build: | |
9 | %bcond_without verbose # verbose build (V=1) | |
10 | %bcond_without perf # perf tools | |
11 | %bcond_without gtk # GTK+ 2.x perf support | |
12 | ||
13 | %define basever 3.16 | |
14 | %define postver .2 | |
15 | Summary: Assortment of tools for the Linux kernel | |
16 | Summary(pl.UTF-8): Zestaw narzędzi dla jądra Linuksa | |
17 | Name: kernel-tools | |
18 | Version: %{basever}%{postver} | |
19 | Release: 1 | |
20 | License: GPL v2 | |
21 | Group: Applications/System | |
22 | Source0: https://www.kernel.org/pub/linux/kernel/v3.x/linux-%{basever}.tar.xz | |
23 | # Source0-md5: 5c569ed649a0c9711879f333e90c5386 | |
24 | %if "%{postver}" != ".0" | |
25 | Patch0: https://www.kernel.org/pub/linux/kernel/v3.x/patch-%{version}.xz | |
26 | # Patch0-md5: 926e6e2ee0634ce53730701da749b040 | |
27 | %endif | |
28 | Source1: cpupower.service | |
29 | Source2: cpupower.config | |
30 | URL: http://www.kernel.org/ | |
31 | BuildRequires: gettext-tools | |
32 | BuildRequires: pciutils-devel | |
33 | BuildRequires: rpmbuild(macros) >= 1.647 | |
34 | BuildRequires: tar >= 1:1.22 | |
35 | BuildRequires: xz | |
36 | %if %{with perf} | |
37 | BuildRequires: asciidoc | |
38 | BuildRequires: audit-libs-devel | |
39 | BuildRequires: binutils-devel | |
40 | BuildRequires: bison | |
41 | BuildRequires: docbook-dtd45-xml | |
42 | BuildRequires: docbook-style-xsl | |
43 | BuildRequires: elfutils-devel | |
44 | BuildRequires: flex | |
45 | BuildRequires: libunwind-devel >= 0.99 | |
46 | BuildRequires: numactl-devel | |
47 | BuildRequires: perl-devel >= 5.1 | |
48 | BuildRequires: python-devel | |
49 | BuildRequires: rpm-pythonprov | |
50 | BuildRequires: slang-devel | |
51 | BuildRequires: xmlto | |
52 | %if %{with gtk} | |
53 | BuildRequires: gtk+2-devel >= 2.0 | |
54 | BuildRequires: pkgconfig | |
55 | %endif | |
56 | %endif | |
57 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
58 | ||
59 | # otherwise /usr/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character | |
60 | %define _enable_debug_packages 0 | |
61 | ||
62 | %define makeopts CC="%{__cc}" %{?with_verbose:V=1} | |
63 | ||
64 | %description | |
65 | This package contains the software from tools/ subdirectory from Linux | |
66 | kernel source and the supporting documentation. | |
67 | ||
68 | %description -l pl.UTF-8 | |
69 | Ten pakiet zawiera oprogramowanie z podkatalogu tools/ ze źródeł jądra | |
70 | Linuksa oraz związaną z nim dokumentację. | |
71 | ||
72 | %package cpupower | |
73 | Summary: cpupower - Shows and sets processor power related values | |
74 | Summary(pl.UTF-8): cpupower - wyświetlanie i ustawianie wartości związanych z zużyciem energii przez procesor | |
75 | Group: Applications/System | |
76 | Requires(post,preun,postun): systemd-units >= 38 | |
77 | Requires: %{name}-cpupower-libs = %{version}-%{release} | |
78 | Requires: systemd-units >= 0.38 | |
79 | Provides: cpufreq-utils = 1:009-0.6.p1 | |
80 | Provides: cpufrequtils = 1:009-0.6.p1 | |
81 | Provides: cpupowerutils = 1:009-0.6.p1 | |
82 | Obsoletes: cpufreq-utils < 1:009-0.6.p1 | |
83 | Obsoletes: cpufrequtils < 1:009-0.6.p1 | |
84 | Obsoletes: cpupowerutils < 1:009-0.6.p1 | |
85 | Obsoletes: cpuspeed < 1:1.5-16 | |
86 | ||
87 | %description cpupower | |
88 | cpupower is a collection of tools to examine and tune power saving | |
89 | related features of your processor. | |
90 | ||
91 | %description cpupower -l pl.UTF-8 | |
92 | cpupower to zbiór narzędzi do sprawdzania i ustawiania opcji procesora | |
93 | związanych z oszczędzaniem energii. | |
94 | ||
95 | %package cpupower-libs | |
96 | Summary: cpupower library | |
97 | Summary(pl.UTF-8): Biblioteka cpupower | |
98 | Group: Libraries | |
99 | ||
100 | %description cpupower-libs | |
101 | cpupower library. | |
102 | ||
103 | %description cpupower-libs -l pl.UTF-8 | |
104 | Biblioteka cpupower. | |
105 | ||
106 | %package cpupower-libs-devel | |
107 | Summary: Development files for the cpupower library | |
108 | Summary(pl.UTF-8): Pliki programistyczne biblioteki cpupower | |
109 | Group: Development/Libraries | |
110 | Requires: %{name} = %{version}-%{release} | |
111 | Requires: %{name}-cpupower-libs = %{version}-%{release} | |
112 | Provides: cpufrequtils-devel = 1:009-0.6.p1 | |
113 | Provides: cpupowerutils-devel = 1:009-0.6.p1 | |
114 | Obsoletes: cpufrequtils-devel < 1:009-0.6.p1 | |
115 | Obsoletes: cpupowerutils-devel < 1:009-0.6.p1 | |
116 | ||
117 | %description cpupower-libs-devel | |
118 | Development files for the cpupower library. | |
119 | ||
120 | %description cpupower-libs-devel -l pl.UTF-8 | |
121 | Pliki programistyczne biblioteki cpupower. | |
122 | ||
123 | %package perf | |
124 | Summary: perf profiler tool | |
125 | Summary(pl.UTF-8): Narzędzie profilujące perf | |
126 | Group: Applications/System | |
127 | Suggests: binutils | |
128 | Obsoletes: perf-core | |
129 | Obsoletes: perf-slang | |
130 | ||
131 | %description perf | |
132 | Perf is a profiler tool for Linux 2.6+ based systems that abstracts | |
133 | away CPU hardware differences in Linux performance measurements and | |
134 | presents a simple commandline interface. Perf is based on the | |
135 | perf_events interface exported by recent versions of the Linux kernel. | |
136 | ||
137 | This package contains core files, scripts and text interface (TUI). | |
138 | ||
139 | %description perf -l pl.UTF-8 | |
140 | Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+, | |
141 | odseparowujące od różnic sprzętowych między pomiarami wydajności w | |
142 | zależności od procesora oraz udostępniające prosty interfejs linii | |
143 | poleceń. Perf jest oparty na interfejsie perf_events eksportowanym | |
144 | przez nowe wersje jądra Linuksa. | |
145 | ||
146 | Ten pakiet zawiera podstawowe pliki, skrypty oraz interfejs tekstowy | |
147 | (TUI). | |
148 | ||
149 | %package perf-gtk | |
150 | Summary: perf profiler tool (GTK+ 2 GUI) | |
151 | Summary(pl.UTF-8): Narzędzie profilujące perf (interfejs graficzny GTK+ 2) | |
152 | Group: X11/Applications | |
153 | Requires: %{name}-perf-core = %{version}-%{release} | |
154 | Provides: %{name}-perf = %{version}-%{release} | |
155 | ||
156 | %description perf-gtk | |
157 | Perf is a profiler tool for Linux 2.6+ based systems that abstracts | |
158 | away CPU hardware differences in Linux performance measurements and | |
159 | presents a simple commandline interface. Perf is based on the | |
160 | perf_events interface exported by recent versions of the Linux kernel. | |
161 | ||
162 | This package contains GTK+ 2 based GUI. | |
163 | ||
164 | %description perf-gtk -l pl.UTF-8 | |
165 | Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+, | |
166 | odseparowujące od różnic sprzętowych między pomiarami wydajności w | |
167 | zależności od procesora oraz udostępniające prosty interfejs linii | |
168 | poleceń. Perf jest oparty na interfejsie perf_events eksportowanym | |
169 | przez nowe wersje jądra Linuksa. | |
170 | ||
171 | Ten pakiet zawiera graficzny interfejs oparty na GTK+ 2. | |
172 | ||
173 | %package perf-slang | |
174 | Summary: perf profiler tool (Slang TUI) | |
175 | Summary(pl.UTF-8): Narzędzie profilujące perf (interfejs tekstowy Slang) | |
176 | Group: X11/Applications | |
177 | Requires: %{name}-perf-core = %{version}-%{release} | |
178 | Provides: %{name}-perf = %{version}-%{release} | |
179 | ||
180 | %description perf-slang | |
181 | Perf is a profiler tool for Linux 2.6+ based systems that abstracts | |
182 | away CPU hardware differences in Linux performance measurements and | |
183 | presents a simple commandline interface. Perf is based on the | |
184 | perf_events interface exported by recent versions of the Linux kernel. | |
185 | ||
186 | This package contains Slang based TUI. | |
187 | ||
188 | %description perf-slang -l pl.UTF-8 | |
189 | Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+, | |
190 | odseparowujące od różnic sprzętowych między pomiarami wydajności w | |
191 | zależności od procesora oraz udostępniające prosty interfejs linii | |
192 | poleceń. Perf jest oparty na interfejsie perf_events eksportowanym | |
193 | przez nowe wersje jądra Linuksa. | |
194 | ||
195 | Ten pakiet zawiera tekstowy interfejs oparty na bibliotece Slang. | |
196 | ||
197 | %package -n bash-completion-perf | |
198 | Summary: Bash completion for perf command | |
199 | Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla polecenia perf | |
200 | Group: Applications/Shells | |
201 | Requires: %{name}-perf | |
202 | Requires: bash-completion | |
203 | %if "%{_rpmversion}" >= "5" | |
204 | BuildArch: noarch | |
205 | %endif | |
206 | ||
207 | %description -n bash-completion-perf | |
208 | Bash completion for perf command. | |
209 | ||
210 | %description -n bash-completion-perf -l pl.UTF-8 | |
211 | Bashowe uzupełnianie parametrów dla polecenia perf. | |
212 | ||
213 | %prep | |
214 | %setup -qc | |
215 | cd linux-%{basever} | |
216 | ||
217 | %if "%{postver}" != ".0" | |
218 | %patch0 -p1 | |
219 | %endif | |
220 | ||
221 | sed -i -e 's#libexec/perf-core#%{_datadir}/perf-core#g' tools/perf/config/Makefile | |
222 | ||
223 | %build | |
224 | cd linux-%{basever} | |
225 | ||
226 | # Simple Disk Sleep Monitor | |
227 | %{__cc} %{rpmcppflags} %{rpmcflags} %{rpmldflags} Documentation/laptops/dslm.c -o dslm | |
228 | ||
229 | # cpupower | |
230 | %{__make} -C tools/power/cpupower \ | |
231 | %{makeopts} \ | |
232 | CPUFREQ_BENCH=false \ | |
233 | OPTIMIZATION="%{rpmcflags}" \ | |
234 | STRIPCMD=true | |
235 | ||
236 | %ifarch %{ix86} | |
237 | %{__make} -C tools/power/cpupower/debug/i386 centrino-decode powernow-k8-decode \ | |
238 | CC="%{__cc}" \ | |
239 | CFLAGS="%{rpmcflags}" | |
240 | %endif | |
241 | ||
242 | %ifarch %{x8664} | |
243 | %{__make} -C tools/power/cpupower/debug/x86_64 centrino-decode powernow-k8-decode \ | |
244 | CC="%{__cc}" \ | |
245 | CFLAGS="%{rpmcflags}" | |
246 | %endif | |
247 | ||
248 | %ifarch %{ix86} %{x8664} | |
249 | %{__make} -C tools/power/x86/x86_energy_perf_policy \ | |
250 | CC="%{__cc}" \ | |
251 | CFLAGS="%{rpmcflags}" | |
252 | CFLAGS="%{rpmcflags}" \ | |
253 | %{__make} -C tools/power/x86/turbostat \ | |
254 | CC="%{__cc}" | |
255 | %endif | |
256 | ||
257 | # page-types, slabinfo | |
258 | %{__make} -C tools/vm page-types slabinfo \ | |
259 | CC="%{__cc}" \ | |
260 | CFLAGS="%{rpmcflags} -Wall -Wextra -I../lib" | |
261 | ||
262 | %if %{with perf} | |
263 | %{__make} -C tools/perf all man \ | |
264 | %{!?with_gtk:NO_GTK2=1} \ | |
265 | %{makeopts} \ | |
266 | CFLAGS_OPTIMIZE="%{rpmcflags}" \ | |
267 | WERROR=0 \ | |
268 | prefix=%{_prefix} \ | |
269 | perfexecdir=%{_datadir}/perf-core \ | |
270 | template_dir=%{_datadir}/perf-core/templates | |
271 | %endif | |
272 | ||
273 | # gen_init_cpio | |
274 | %{__make} -C usr gen_init_cpio \ | |
275 | %{makeopts} \ | |
276 | CFLAGS="%{rpmcflags}" | |
277 | ||
278 | %install | |
279 | rm -rf $RPM_BUILD_ROOT | |
280 | ||
281 | cd linux-%{basever} | |
282 | install -d $RPM_BUILD_ROOT%{_sbindir} | |
283 | ||
284 | %{__make} -C tools/power/cpupower install \ | |
285 | DESTDIR=$RPM_BUILD_ROOT \ | |
286 | libdir=%{_libdir} \ | |
287 | mandir=%{_mandir} \ | |
288 | CPUFREQ_BENCH=false | |
289 | ||
290 | %find_lang cpupower | |
291 | mv cpupower.lang .. | |
292 | ||
293 | install -d $RPM_BUILD_ROOT{/etc/sysconfig,%{systemdunitdir}} | |
294 | cp -p %{SOURCE1} $RPM_BUILD_ROOT%{systemdunitdir}/cpupower.service | |
295 | cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/cpupower | |
296 | ||
297 | %ifarch %{ix86} | |
298 | install -p tools/power/cpupower/debug/i386/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} | |
299 | %endif | |
300 | %ifarch %{x8664} | |
301 | install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_BUILD_ROOT%{_bindir} | |
302 | %endif | |
303 | ||
304 | install -p tools/vm/slabinfo $RPM_BUILD_ROOT%{_bindir} | |
305 | install -p tools/vm/page-types $RPM_BUILD_ROOT%{_sbindir} | |
306 | install -p dslm $RPM_BUILD_ROOT%{_sbindir} | |
307 | ||
308 | %ifarch %{ix86} %{x8664} | |
309 | install -d $RPM_BUILD_ROOT%{_mandir}/man8 | |
310 | # broken makefile, install manually | |
311 | %if 0 | |
312 | %{__make} install \ | |
313 | -C tools/power/x86/x86_energy_perf_policy \ | |
314 | DESTDIR=$RPM_BUILD_ROOT | |
315 | %else | |
316 | cd tools/power/x86/x86_energy_perf_policy | |
317 | install -p x86_energy_perf_policy $RPM_BUILD_ROOT%{_bindir} | |
318 | cp -p x86_energy_perf_policy.8 $RPM_BUILD_ROOT%{_mandir}/man8 | |
319 | cd - | |
320 | %endif | |
321 | ||
322 | # broken makefile, install manually | |
323 | %if 0 | |
324 | %{__make} install \ | |
325 | -C tools/power/x86/turbostat \ | |
326 | DESTDIR=$RPM_BUILD_ROOT | |
327 | %else | |
328 | cd tools/power/x86/turbostat | |
329 | cp -p turbostat.8 $RPM_BUILD_ROOT%{_mandir}/man8 | |
330 | cd - | |
331 | install -p turbostat $RPM_BUILD_ROOT%{_bindir}/turbostat | |
332 | %endif | |
333 | %endif | |
334 | ||
335 | %if %{with perf} | |
336 | %{__make} -j1 install install-man \ | |
337 | -C tools/perf \ | |
338 | %{!?with_gtk:NO_GTK2=1} \ | |
339 | CC="%{__cc}" \ | |
340 | CFLAGS_OPTIMIZE="%{rpmcflags}" \ | |
341 | WERROR=0 \ | |
342 | %{?with_verbose:V=1} \ | |
343 | prefix=%{_prefix} \ | |
344 | perfexecdir=%{_datadir}/perf-core \ | |
345 | template_dir=%{_datadir}/perf-core/templates \ | |
346 | DESTDIR=$RPM_BUILD_ROOT | |
347 | ||
348 | %py_comp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python | |
349 | %py_ocomp $RPM_BUILD_ROOT%{_datadir}/perf-core/scripts/python | |
350 | ||
351 | %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/perf-core/tests | |
352 | %endif | |
353 | ||
354 | # gen_init_cpio | |
355 | install -p usr/gen_init_cpio $RPM_BUILD_ROOT%{_bindir}/gen_init_cpio | |
356 | ||
357 | %clean | |
358 | rm -rf $RPM_BUILD_ROOT | |
359 | ||
360 | %post cpupower-libs -p /sbin/ldconfig | |
361 | %postun cpupower-libs -p /sbin/ldconfig | |
362 | ||
363 | %post cpupower | |
364 | %systemd_post cpupower.service | |
365 | ||
366 | %preun cpupower | |
367 | %systemd_preun cpupower.service | |
368 | ||
369 | %postun cpupower | |
370 | %systemd_reload | |
371 | ||
372 | %files | |
373 | %defattr(644,root,root,755) | |
374 | %attr(755,root,root) %{_bindir}/gen_init_cpio | |
375 | %attr(755,root,root) %{_bindir}/slabinfo | |
376 | %attr(755,root,root) %{_sbindir}/dslm | |
377 | %attr(755,root,root) %{_sbindir}/page-types | |
378 | %ifarch %{ix86} %{x8664} | |
379 | %attr(755,root,root) %{_bindir}/centrino-decode | |
380 | %attr(755,root,root) %{_bindir}/powernow-k8-decode | |
381 | %endif | |
382 | %ifarch %{ix86} %{x8664} | |
383 | %attr(755,root,root) %{_bindir}/turbostat | |
384 | %attr(755,root,root) %{_bindir}/x86_energy_perf_policy | |
385 | %{_mandir}/man8/turbostat.8* | |
386 | %{_mandir}/man8/x86_energy_perf_policy.8* | |
387 | %endif | |
388 | ||
389 | %files cpupower -f cpupower.lang | |
390 | %defattr(644,root,root,755) | |
391 | %attr(755,root,root) %{_bindir}/cpupower | |
392 | %{_mandir}/man1/cpupower*.1* | |
393 | %{systemdunitdir}/cpupower.service | |
394 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cpupower | |
395 | ||
396 | %files cpupower-libs | |
397 | %defattr(644,root,root,755) | |
398 | %attr(755,root,root) %{_libdir}/libcpupower.so.*.*.* | |
399 | %attr(755,root,root) %ghost %{_libdir}/libcpupower.so.0 | |
400 | ||
401 | %files cpupower-libs-devel | |
402 | %defattr(644,root,root,755) | |
403 | %attr(755,root,root) %{_libdir}/libcpupower.so | |
404 | %{_includedir}/cpufreq.h | |
405 | ||
406 | %if %{with perf} | |
407 | %files perf | |
408 | %defattr(644,root,root,755) | |
409 | %attr(755,root,root) %{_bindir}/perf | |
410 | %attr(755,root,root) %{_bindir}/trace | |
411 | %{_mandir}/man1/perf*.1* | |
412 | %dir %{_datadir}/perf-core | |
413 | %attr(755,root,root) %{_datadir}/perf-core/perf-archive | |
414 | ||
415 | %dir %{_datadir}/perf-core/scripts | |
416 | ||
417 | %dir %{_datadir}/perf-core/scripts/perl | |
418 | %dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util | |
419 | %dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib | |
420 | %dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf | |
421 | %dir %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace | |
422 | %{_datadir}/perf-core/scripts/perl/Perf-Trace-Util/lib/Perf/Trace/*.pm | |
423 | %dir %{_datadir}/perf-core/scripts/perl/bin | |
424 | %attr(755,root,root) %{_datadir}/perf-core/scripts/perl/bin/* | |
425 | %{_datadir}/perf-core/scripts/perl/*.pl | |
426 | ||
427 | %dir %{_datadir}/perf-core/scripts/python | |
428 | %dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util | |
429 | %dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib | |
430 | %dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf | |
431 | %dir %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace | |
432 | %{_datadir}/perf-core/scripts/python/Perf-Trace-Util/lib/Perf/Trace/*.py* | |
433 | %dir %{_datadir}/perf-core/scripts/python/bin | |
434 | %attr(755,root,root) %{_datadir}/perf-core/scripts/python/bin/* | |
435 | %{_datadir}/perf-core/scripts/python/*.py* | |
436 | ||
437 | %dir %{_libdir}/traceevent | |
438 | %dir %{_libdir}/traceevent/plugins | |
439 | %attr(755,root,root) %{_libdir}/traceevent/plugins/plugin_*.so | |
440 | ||
441 | %if %{with gtk} | |
442 | %files perf-gtk | |
443 | %defattr(644,root,root,755) | |
444 | %attr(755,root,root) %{_libdir}/libperf-gtk.so | |
445 | %endif | |
446 | ||
447 | %files -n bash-completion-perf | |
448 | %defattr(644,root,root,755) | |
449 | /etc/bash_completion.d/perf | |
450 | %endif |