3 %bcond_without dist_kernel # allow non-distribution kernel
4 %bcond_without kernel # don't build kernel modules
5 %bcond_without userspace # don't build userspace programs
6 %bcond_with verbose # verbose build (V=1)
9 %undefine with_dist_kernel
12 # The goal here is to have main, userspace, package built once with
13 # simple release number, and only rebuild kernel packages with kernel
14 # version as part of release number, without the need to bump release
15 # with every kernel change.
16 %if 0%{?_pld_builder:1} && %{with kernel} && %{with userspace}
17 %{error:kernel and userspace cannot be built at the same time on PLD builders}
21 %if "%{_alt_kernel}" != "%{nil}"
22 %if 0%{?build_kernels:1}
23 %{error:alt_kernel and build_kernels are mutually exclusive}
26 %undefine with_userspace
27 %global _build_kernels %{alt_kernel}
29 %global _build_kernels %{?build_kernels:,%{?build_kernels}}
32 %if %{without userspace}
33 # nothing to be placed to debuginfo package
34 %define _enable_debug_packages 0
37 %define _duplicate_files_terminate_build 0
39 %define kbrs %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo "BuildRequires:kernel%%{_alt_kernel}-module-build >= 3:2.6.20.2" ; done)
40 %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)
41 %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)
45 Summary: Solaris Porting Layer
46 Summary(pl.UTF-8): Solaris Porting Layer - warstwa do portowania kodu z Solarisa
47 Name: %{pname}%{?_pld_builder:%{?with_kernel:-kernel}}%{_alt_kernel}
49 Release: %{rel}%{?_pld_builder:%{?with_kernel:@%{_kernel_ver_str}}}
51 Group: Applications/System
52 Source0: http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/%{pname}-%{version}.tar.gz
53 # Source0-md5: 8df6ce3c8f1d9af6526b36f5079cba59
54 Patch0: linux-3.17.patch
55 Patch1: linux-3.18.patch
56 URL: http://zfsonlinux.org/
57 BuildRequires: rpmbuild(macros) >= 1.678
58 %{?with_dist_kernel:%{expand:%kbrs}}
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
62 Solaris Porting Layer.
64 %description -l pl.UTF-8
65 Solaris Porting Layer - warstwa do portowania kodu z Solarisa.
67 %package -n kernel-spl-common-devel
68 Summary: Solaris Porting Layer - Linux kernel headers
69 Summary(pl.UTF-8): Solaris Porting Layer - pliki nagłówkowe jądra Linuksa
70 Group: Development/Building
72 %description -n kernel-spl-common-devel
73 Solaris Porting Layer - Linux kernel headers common for all PLD
76 %description -n kernel-spl-common-devel -l pl.UTF-8
77 Solaris Porting Layer - pliki nagłówkowe jądra Linuksa wspólne
78 dla wszystkich wersji jądrer PLD.
81 %package -n kernel%{_alt_kernel}-spl\
82 Summary: Solaris Porting Layer - Linux kernel modules\
83 Summary(pl.UTF-8): Solaris Porting Layer - moduły jądra Linuksa\
84 Release: %{rel}@%{_kernel_ver_str}\
86 Requires(post,postun): /sbin/depmod\
87 %if %{with dist_kernel}\
88 %requires_releq_kernel\
89 Requires(postun): %releq_kernel\
92 %description -n kernel%{_alt_kernel}-spl\
93 Solaris Porting Layer - Linux kernel modules.\
95 %description -n kernel%{_alt_kernel}-spl -l pl.UTF-8\
96 Solaris Porting Layer - moduły jądra Linuksa.\
98 %package -n kernel%{_alt_kernel}-spl-devel\
99 Summary: Solaris Porting Layer - Linux kernel headers\
100 Summary(pl.UTF-8): Solaris Porting Layer - pliki nagłówkowe jądra Linuksa\
101 Release: %{rel}@%{_kernel_ver_str}\
102 Group: Development/Building\
103 %if %{with dist_kernel}\
104 Requires: kernel%{_alt_kernel}-headers\
105 Requires: kernel-spl-common-devel\
108 %description -n kernel%{_alt_kernel}-spl-devel\
109 Solaris Porting Layer - Linux kernel headers configured for PLD\
110 kernel%{_alt_kernel}, version %{_kernel_ver}.\
112 %description -n kernel%{_alt_kernel}-spl-devel -l pl.UTF-8\
113 Solaris Porting Layer - pliki nagłówkowe jądra Linuksa skonfigurowane\
114 dla jądra PLD z pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
116 %files -n kernel%{_alt_kernel}-spl\
117 %defattr(644,root,root,755)\
118 %dir /lib/modules/%{_kernel_ver}/misc/spl\
119 /lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
120 %dir /lib/modules/%{_kernel_ver}/misc/splat\
121 /lib/modules/%{_kernel_ver}/misc/splat/splat.ko*\
123 %files -n kernel%{_alt_kernel}-spl-devel\
124 %defattr(644,root,root,755)\
125 /usr/src/spl-%{version}/%{_kernel_ver}\
127 %post -n kernel%{_alt_kernel}-spl\
128 %depmod %{_kernel_ver}\
130 %postun -n kernel%{_alt_kernel}-spl\
131 %depmod %{_kernel_ver}\
134 %define build_kernel_pkg()\
136 --disable-silent-rules \\\
137 --with-config="kernel" \\\
138 --with-linux=%{_kernelsrcdir}\
141 %{__make} %{?with_verbose:V=1}\
143 %{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
146 %{?with_kernel:%{expand:%kpkg}}
149 %setup -q -n %{pname}-%{version}
154 %{__aclocal} -I config
158 %{?with_kernel:%{expand:%bkpkg}}
160 %if %{with userspace}
162 --disable-silent-rules \
170 rm -rf $RPM_BUILD_ROOT
173 install -d $RPM_BUILD_ROOT
174 cp -a installed/* $RPM_BUILD_ROOT
177 %if %{with userspace}
179 DESTDIR=$RPM_BUILD_ROOT
183 rm -rf $RPM_BUILD_ROOT
185 %if %{with userspace}
187 %defattr(644,root,root,755)
188 %doc AUTHORS DISCLAIMER
189 %attr(755,root,root) %{_sbindir}/splat
190 %{_mandir}/man1/splat.1*
191 %{_mandir}/man5/spl-module-parameters.5.gz
195 %files -n kernel-spl-common-devel
196 %defattr(644,root,root,755)
197 %dir /usr/src/spl-%{version}
198 /usr/src/spl-%{version}/spl*.in
199 /usr/src/spl-%{version}/include