]> git.proxmox.com Git - mirror_spl-debian.git/blob - spl.spec.in
Additional tuning to get the BuildRequires right for all cases.
[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 X; %{__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 X; %{__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 X; %{__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 X
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
96 # The kernel version should only be appended to a binary RPM. When
97 # building a source RPM it must be kernel version agnostic. This means
98 # the source RPM must never specify a required kernel version, but the
99 # final RPM should be keyed to the kernel version it was built against.
100 %if %{defined build_src_rpm}
101 %define release @SPL_META_RELEASE@
102 %define requires %{kpkg}
103 %else
104 %define relext %(echo %{kverpkg} | %{__sed} -e 's/-/_/g')
105 %define release @SPL_META_RELEASE@_%{relext}
106 %define requires %{kpkg} = %{kverpkg}
107 %endif
108
109 Summary: Solaris Porting Layer
110 Group: Utilities/System
111 Name: %{name}
112 Version: %{version}
113 Release: %{release}
114 License: GPL
115 URL: git://eris.llnl.gov/spl.git
116 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
117 Source: %{name}-%{version}.tar.gz
118 Requires: %{requires}
119 BuildRequires: %{kdevpkg}
120
121 %description
122 The %{name} package contains kernel modules and support utilities for
123 emulating Solaris style primatives in the linux kernel. These include,
124 but are not limited too, atomic, condvar, debug, error, memory, kobject,
125 kstat, mutex, rwlock, taskq, thread, time, and vnode APIs.
126
127 %package devel
128 Summary: Solaris Porting Layer Headers and Symbols
129 Group: Development/Libraries
130 Requires: %{requires}
131 BuildRequires: %{kdevpkg}
132
133 %description devel
134 The %{name}-devel package contains the header files and Module{s}.symvers
135 symbols needed for building additional modules which use %{name}.
136
137 %prep
138 %setup
139 %build
140 %configure --with-linux=%{kdir} --with-linux-obj=%{kobj}
141 make
142
143 %install
144 rm -rf $RPM_BUILD_ROOT
145 make DESTDIR=$RPM_BUILD_ROOT install
146
147 %clean
148 rm -rf $RPM_BUILD_ROOT
149
150 %files
151 %defattr(-, root, root)
152 %doc AUTHORS ChangeLog COPYING DISCLAIMER INSTALL
153 %{_sbindir}/*
154 /lib/modules/*
155
156 %files devel
157 %defattr(-,root,root)
158 %{_prefix}/src/*
159
160 %post
161 if [ -f /boot/System.map-%{kver} ]; then
162 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
163 else
164 depmod -ae %{kver} || exit 0
165 fi
166
167 %postun
168 if [ -f /boot/System.map-%{kver} ]; then
169 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
170 else
171 depmod -ae %{kver} || exit 0
172 fi