]> git.proxmox.com Git - mirror_zfs.git/blame - spl-modules.spec.in
The HAVE_PATH_IN_NAMEIDATA compat macros should have been used here.
[mirror_zfs.git] / spl-modules.spec.in
CommitLineData
86933a6e
BB
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@-modules
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
109Summary: Solaris Porting Layer Modules
110Group: Utilities/System
111Name: %{name}
112Version: %{version}
113Release: %{release}
114License: @LICENSE@
115URL: git://eris.llnl.gov/spl.git
116BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%(%{__id_u} -n)
117Source: @PACKAGE@-%{version}.tar.gz
118Requires: %{requires}
119BuildRequires: %{kdevpkg}
120
121%description
122The %{name} package contains kernel modules for emulating Solaris style
123primatives in the linux kernel. These include, but are not limited to:
124atomic, condvar, debug, error, memory, kobject, kstat, mutex, rwlock,
125taskq, thread, time, and vnode APIs.
126
127%package devel
128Summary: Solaris Porting Layer Headers and Symbols
129Group: Development/Libraries
130Requires: %{requires}
131BuildRequires: %{kdevpkg}
132
133%description devel
134The %{name}-devel package contains the header files and Module{s}.symvers
135symbols needed for building additional modules which use %{name}.
136
137%prep
138%setup -n @PACKAGE@-%{version}
139%build
140%configure --with-linux=%{kdir} --with-linux-obj=%{kobj} \
141 --with-config=kernel
142make
143
144%install
145rm -rf $RPM_BUILD_ROOT
146make DESTDIR=$RPM_BUILD_ROOT install
147
148%clean
149rm -rf $RPM_BUILD_ROOT
150
151%files
152%defattr(-, root, root)
153/lib/modules/*
154
155%files devel
156%defattr(-,root,root)
157%{_prefix}/src/*
158
159%post
160if [ -f /boot/System.map-%{kver} ]; then
161 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
162else
163 depmod -ae %{kver} || exit 0
164fi
165
166%postun
167if [ -f /boot/System.map-%{kver} ]; then
168 depmod -ae -F /boot/System.map-%{kver} %{kver} || exit 0
169else
170 depmod -ae %{kver} || exit 0
171fi