]> git.proxmox.com Git - mirror_spl-debian.git/blob - spl.spec.in
Simplify the kernel depenency logic
[mirror_spl-debian.git] / spl.spec.in
1 # The following block is used to allow the source RPM to be rebuilt
2 # against specific kernels. It is preferable that rpmbuild define the
3 # require_kver, require_kdir, require_obj constants for us, but if it does not
4 # not we attempt to determine the correct values based on your distro.
5
6 %{?require_kver: %define kver %{require_kver}}
7 %{?require_kdir: %define kdir %{require_kdir}}
8 %{?require_kobj: %define kobj %{require_kobj}}
9
10 # kdir: Full path to the kernel source headers
11 # kobj: Full path to the kernel build objects
12 # kver: Kernel version
13 # kpkg: Kernel package name
14 # kdevpkg: Kernel devel package name
15 # kverpkg: Kernel package version
16
17 # SLES*:
18 %if %{defined sles_version}
19 %if %{undefined kver}
20 %define klnk %{_usrsrc}/linux-obj/%{_target_cpu}/%{_target_cpu}
21 %define kver %((echo unknown; %{__cat} %{klnk}/.kernelrelease
22 2>/dev/null) | tail -1)
23 %endif
24 %define kpkg kernel-%{_target_cpu}
25 %define kdevpkg kernel-source kernel-syms
26 %define kverpkg %(echo %{kver} | cut -d'-' -f1-2)
27 %if %{undefined kdir}
28 %define kdir %{_usrsrc}/linux-%{kverpkg}
29 %endif
30 %if %{undefined kobj}
31 %define kobj %{kdir}-obj/%{_target_cpu}/%{_target_cpu}
32 %endif
33
34 # CHAOS4:
35 %else
36 %if %{defined ch4}
37 %if %{undefined kver}
38 %define klnk %{_usrsrc}/kernels/*/include/config
39 %define kver %((echo unknown; %{__cat} %{klnk}/kernel.release
40 2>/dev/null) | tail -1)
41 %endif
42 %define kpkg chaos-kernel
43 %define kdevpkg chaos-kernel-devel
44 %define kverpkg %{kver}
45 %if %{undefined kdir}
46 %define kdir %{_usrsrc}/kernels/%{kver}
47 %endif
48 %if %{undefined kobj}
49 %define kobj %{kdir}
50 %endif
51
52 # RHEL*/Fedora:
53 %else
54 %if %{defined fedora} || %{defined rhel}
55 %if %{undefined kver}
56 %define klnk %{_usrsrc}/kernels/*/include/config
57 %define kver %((echo unknown; %{__cat} %{klnk}/kernel.release
58 2>/dev/null) | tail -1)
59 %endif
60 %define kpkg kernel
61 %define kdevpkg kernel-devel
62 %define kverpkg %(echo %{kver} | cut -d'.' -f1-7)
63 %if %{undefined kdir}
64 %define kdir %{_usrsrc}/kernels/%{kver}
65 %endif
66 %if %{undefined kobj}
67 %define kobj %{kdir}
68 %endif
69
70 %else
71
72 # Unsupported distro:
73 %if %{undefined kver}
74 %define kver unknown
75 %endif
76 %define kpkg kernel
77 %define kdevpkg kernel-devel
78 %define kverpkg %{kver}
79 %if %{undefined kdir}
80 %define kdir %{_usrsrc}/kernels/%{kver}
81 %endif
82 %if %{undefined kobj}
83 %define kobj %{kdir}
84 %endif
85
86 %endif
87 %endif
88 %endif
89
90 # Distro agnostic:
91 %define name @PACKAGE@
92 %define version @VERSION@
93 %define debug_package %{nil}
94
95 # The kernel version should only be appended to a binary RPM. When
96 # building a source RPM it must be kernel version agnostic. This means
97 # the source RPM must never specify a required kernel version, but the
98 # final RPM should be keyed to the kernel version it was built against.
99 %if %{defined build_src_rpm}
100 %define release @SPL_META_RELEASE@
101 %define requires %{kpkg}
102 %define buildrequires %{kdevpkg}
103 %else
104 %define release @SPL_META_RELEASE@_%(echo %{kverpkg} |
105 %{__sed} -e 's/-/_/g')
106 %define requires %{kpkg} = %{kverpkg}
107 %define buildrequires %{kdevpkg} = %{kverpkg}
108 %endif
109
110 Summary: Solaris Porting Layer
111 Group: Utilities/System
112 Name: %{name}
113 Version: %{version}
114 Release: %{release}
115 License: GPL
116 URL: git://eris.llnl.gov/spl.git
117 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
118 Source: %{name}-%{version}.tar.gz
119 Requires: %{requires}
120 BuildRequires: %{buildrequires}
121
122 %description
123 The %{name} package contains kernel modules and support utilities for
124 emulating Solaris style primatives in the linux kernel. These include,
125 but are not limited too, atomic, condvar, debug, error, memory, kobject,
126 kstat, mutex, rwlock, taskq, thread, time, and vnode APIs.
127
128 %package devel
129 Summary: Solaris Porting Layer Headers and Symbols
130 Group: Development/Libraries
131 Requires: %{requires}
132 BuildRequires: %{buildrequires}
133
134 %description devel
135 The %{name}-devel package contains the header files and Module{s}.symvers
136 symbols needed for building additional modules which use %{name}.
137
138 %prep
139 %setup
140 %build
141 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj}
142 make
143
144 %install
145 rm -rf $RPM_BUILD_ROOT
146 make DESTDIR=$RPM_BUILD_ROOT install
147
148 %clean
149 rm -rf $RPM_BUILD_ROOT
150
151 %files
152 %defattr(-, root, root)
153 %doc AUTHORS ChangeLog COPYING DISCLAIMER INSTALL
154 %{_sbindir}/*
155 /lib/modules/*
156
157 %files devel
158 %defattr(-,root,root)
159 %{_prefix}/src/*
160
161 %post
162 if [ -f /boot/System.map-%{kver} ]; then
163 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
164 else
165 depmod -ae %{kver} || exit 0
166 fi
167
168 %postun
169 if [ -f /boot/System.map-%{kver} ]; then
170 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
171 else
172 depmod -ae %{kver} || exit 0
173 fi