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