]> git.pld-linux.org Git - packages/crash.git/blame - crash.spec
- switch to macro driven module build for multiple kernel versions
[packages/crash.git] / crash.spec
CommitLineData
61472ea8 1# TODO:
7d6e8030 2# - libeppic if anything else (but crash extension) wants to use it
61472ea8 3#
2025c975
JB
4# Conditional build:
5%bcond_without dist_kernel # allow non-distribution kernel
6%bcond_without kernel # don't build kernel modules
7%bcond_without userspace # don't build userspace programs
8%bcond_with verbose # verbose kernel module build (V=1)
661e0f95
JR
9
10%if %{without kernel}
11%undefine with_dist_kernel
12%endif
13
14# The goal here is to have main, userspace, package built once with
15# simple release number, and only rebuild kernel packages with kernel
16# version as part of release number, without the need to bump release
17# with every kernel change.
18%if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
19%{error:kernel and userspace cannot be built at the same time on PLD builders}
20exit 1
21%endif
22
ff79030e 23%if "%{_alt_kernel}" != "%{nil}"
661e0f95
JR
24%if 0%{?build_kernels:1}
25%{error:alt_kernel and build_kernels are mutually exclusive}
26exit 1
27%endif
ff79030e 28%undefine with_userspace
661e0f95
JR
29%global _build_kernels %{alt_kernel}
30%else
31%global _build_kernels %{?build_kernels:,%{?build_kernels}}
32%endif
33
34%if %{without userspace}
35# nothing to be placed to debuginfo package
36%define _enable_debug_packages 0
ff79030e
JR
37%endif
38
661e0f95
JR
39%define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
40%define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
41
42%define rel 2
ff79030e 43%define pname crash
61472ea8
JB
44Summary: Core Analysis Suite
45Summary(pl.UTF-8): Zestaw narzędzi do analizy zrzutów pamięci
e40a17b9 46Name: %{pname}%{_alt_kernel}
6fceeee9 47Version: 7.0.3
661e0f95 48Release: %{rel}%{?with_kernel:@%{_kernel_ver_str}}
61472ea8
JB
49License: GPL v2+
50Group: Libraries
ff79030e 51Source0: http://people.redhat.com/anderson/%{pname}-%{version}.tar.gz
6fceeee9 52# Source0-md5: 70d46467f9f2a7115a03cb698fe5125f
7d6e8030
JB
53# git clone https://code.google.com/p/eppic
54Source1: eppic.tar.xz
55# Source1-md5: a9f80ad71de9d6f5b77534a7ebdbed8e
61472ea8 56URL: http://people.redhat.com/anderson/
661e0f95
JR
57BuildRequires: rpmbuild(macros) >= 1.678
58%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
2025c975 59%if %{with userspace}
61472ea8
JB
60BuildRequires: ncurses-devel
61BuildRequires: readline-devel
62BuildRequires: xz-devel
63BuildRequires: zlib-devel
2025c975 64%endif
61472ea8
JB
65ExclusiveArch: %{ix86} %{x8664} alpha arm ia64 ppc64 s390 s390x
66BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68%description
69The core analysis suite is a self-contained tool that can be used to
70investigate either live systems, kernel core dumps created from the
71netdump and diskdump packages offered by Red Hat, the LKCD kernel
72patch or the mcore kernel patch available from Mission Critical Linux.
73
74%description -l pl.UTF-8
75Narzędzie do analizy zrzutów pamięci to samodzielny program służący do
76badania systemów działających, zrzutów pamięci jądra utworzonych przez
77pakiety Red Hata netdump lub diskdump, łatę jądra LKCD lub łatę jądra
78mcore dostępną w Mission Critical Linuksie.
79
80%package devel
81Summary: Header files for core analysis suite
82Summary(pl.UTF-8): Plik nagłówkowy narzędzia do analizy zrzutów pamięci
83Group: Development/Libraries
84# doesn't require base
85
86%description devel
87Header files for core analysis suite.
88
89%description devel -l pl.UTF-8
90Plik nagłówkowy narzędzia do analizy zrzutów pamięci.
91
661e0f95
JR
92%define kernel_pkg()\
93%package -n kernel%{_alt_kernel}-char-crash\
94Summary: Memory driver for live system crash sessions\
95Summary(pl.UTF-8): Sterownik pamięci dla sesji crash na żywym systemie\
96Release: %{rel}@%{_kernel_ver_str}\
97Group: Base/Kernel\
98Requires(post,postun): /sbin/depmod\
99%if %{with dist_kernel}\
100%requires_releq_kernel\
101Requires(postun): %releq_kernel\
102%endif\
103\
104%description -n kernel%{_alt_kernel}-char-crash\
105This package contains /dev/crash memory driver for live system crash\
106sessions, which may be used when /dev/mem and /proc/kcore are\
107unavailable.\
108\
109%description -n kernel%{_alt_kernel}-char-crash -l pl.UTF-8\
110Ten pakiet zawiera sterownik pamięci /dev/crash do sesji crash na\
111żywym systemie. Może być używany do analizy, kiedy /dev/mem i\
112/proc/kcore nie są dostępne.\
113\
114%if %{with kernel}\
115%files -n kernel%{_alt_kernel}-char-crash\
116%defattr(644,root,root,755)\
117%doc memory_driver/README\
118/lib/modules/%{_kernel_ver}/kernel/drivers/char/crash.ko*\
119%endif\
120\
121%post -n kernel%{_alt_kernel}-char-crash\
122%depmod %{_kernel_ver}\
123\
124%postun -n kernel%{_alt_kernel}-char-crash\
125%depmod %{_kernel_ver}\
126%{nil}
127
128%define build_kernel_pkg()\
129%build_kernel_modules -C memory_driver -m crash\
130%install_kernel_modules -D installed -m memory_driver/crash -d kernel/drivers/char\
131%{nil}
132
133%{?with_kernel:%{expand:%kpkg}}
2025c975 134
61472ea8 135%prep
ff79030e 136%setup -q -a1 -n %{pname}-%{version}
61472ea8 137
7d6e8030 138%{__mv} eppic extensions
61472ea8
JB
139
140%build
661e0f95 141%{?with_kernel:%{expand:%bkpkg}}
2025c975
JB
142
143%if %{with userspace}
61472ea8
JB
144export CPPFLAGS="%{rpmcppflags} -I/usr/include/ncurses"
145%{__make} -j1 all extensions \
146 ARCH="%{_target_cpu}" \
147 CC="%{__cc}" \
148 CFLAGS="%{rpmcflags} -I/usr/include/ncurses"
2025c975 149%endif
61472ea8
JB
150
151%install
152rm -rf $RPM_BUILD_ROOT
2025c975
JB
153
154%if %{with kernel}
661e0f95
JR
155install -d $RPM_BUILD_ROOT
156cp -a installed/* $RPM_BUILD_ROOT
2025c975
JB
157%endif
158
159%if %{with userspace}
6d83b7e9 160install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man8,%{_libdir}/crash/extensions,%{_includedir}/crash}
61472ea8
JB
161
162%{__make} install \
163 DESTDIR=$RPM_BUILD_ROOT
164
165# omitted by make install
6d83b7e9 166install extensions/*.so $RPM_BUILD_ROOT%{_libdir}/crash/extensions
61472ea8
JB
167cp -p crash.8 $RPM_BUILD_ROOT%{_mandir}/man8
168cp -p defs.h $RPM_BUILD_ROOT%{_includedir}/crash
2025c975 169%endif
61472ea8
JB
170
171%clean
172rm -rf $RPM_BUILD_ROOT
173
2025c975 174%if %{with userspace}
61472ea8
JB
175%files
176%defattr(644,root,root,755)
177%doc README
178%attr(755,root,root) %{_bindir}/crash
6d83b7e9
JB
179%dir %{_libdir}/crash
180%dir %{_libdir}/crash/extensions
181%attr(755,root,root) %{_libdir}/crash/extensions/dminfo.so
182%attr(755,root,root) %{_libdir}/crash/extensions/echo.so
7d6e8030 183%attr(755,root,root) %{_libdir}/crash/extensions/eppic.so
6d83b7e9
JB
184%attr(755,root,root) %{_libdir}/crash/extensions/snap.so
185%attr(755,root,root) %{_libdir}/crash/extensions/trace.so
61472ea8
JB
186%{_mandir}/man8/crash.8*
187
188%files devel
189%defattr(644,root,root,755)
190%{_includedir}/crash
2025c975 191%endif
This page took 0.113 seconds and 4 git commands to generate.