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: f00535bf89a7fde0e08f44a14a1f1e03
54 Patch0: %{pname}-linux-3.12.patch
55 Patch1: %{pname}-linux-3.13.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.
68 %package -n kernel%{_alt_kernel}-spl\
69 Summary: Solaris Porting Layer - Linux kernel modules\
70 Summary(pl.UTF-8): Solaris Porting Layer - moduły jądra Linuksa\
71 Release: %{rel}@%{_kernel_ver_str}\
73 Requires(post,postun): /sbin/depmod\
74 %if %{with dist_kernel}\
75 %requires_releq_kernel\
76 Requires(postun): %releq_kernel\
79 %description -n kernel%{_alt_kernel}-spl\
80 Solaris Porting Layer - Linux kernel modules.\
82 %description -n kernel%{_alt_kernel}-spl -l pl.UTF-8\
83 Solaris Porting Layer - moduły jądra Linuksa.\
85 %package -n kernel%{_alt_kernel}-spl-devel\
86 Summary: Solaris Porting Layer - Linux kernel headers\
87 Summary(pl.UTF-8): Solaris Porting Layer - pliki nagłówkowe jądra Linuksa\
88 Release: %{rel}@%{_kernel_ver_str}\
89 Group: Development/Building\
90 %{?with_dist_kernel:Requires: kernel%{_alt_kernel}-headers}\
92 %description -n kernel%{_alt_kernel}-spl-devel\
93 Solaris Porting Layer - Linux kernel headers configured for PLD\
94 kernel%{_alt_kernel}, version %{_kernel_ver}.\
96 %description -n kernel%{_alt_kernel}-spl-devel -l pl.UTF-8\
97 Solaris Porting Layer - pliki nagłówkowe jądra Linuksa skonfigurowane\
98 dla jądra PLD z pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
100 %files -n kernel%{_alt_kernel}-spl\
101 %defattr(644,root,root,755)\
102 %dir /lib/modules/%{_kernel_ver}/misc/spl\
103 /lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
104 %dir /lib/modules/%{_kernel_ver}/misc/splat\
105 /lib/modules/%{_kernel_ver}/misc/splat/splat.ko*\
107 %files -n kernel%{_alt_kernel}-spl-devel\
108 %defattr(644,root,root,755)\
109 %dir /usr/src/spl-%{version}\
110 /usr/src/spl-%{version}/spl*.in\
111 /usr/src/spl-%{version}/include\
112 /usr/src/spl-%{version}/%{_kernel_ver}\
114 %post -n kernel%{_alt_kernel}-spl\
115 %depmod %{_kernel_ver}\
117 %postun -n kernel%{_alt_kernel}-spl\
118 %depmod %{_kernel_ver}\
121 %define build_kernel_pkg()\
123 --disable-silent-rules \\\
124 --with-config="kernel" \\\
125 --with-linux=%{_kernelsrcdir}\
128 %{__make} %{?with_verbose:V=1}\
130 %{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
133 %{?with_kernel:%{expand:%kpkg}}
136 %setup -q -n %{pname}-%{version}
141 %{__aclocal} -I config
145 %{?with_kernel:%{expand:%bkpkg}}
147 %if %{with userspace}
149 --disable-silent-rules \
157 rm -rf $RPM_BUILD_ROOT
160 install -d $RPM_BUILD_ROOT
161 cp -a installed/* $RPM_BUILD_ROOT
164 %if %{with userspace}
166 DESTDIR=$RPM_BUILD_ROOT
170 rm -rf $RPM_BUILD_ROOT
172 %if %{with userspace}
174 %defattr(644,root,root,755)
175 %doc AUTHORS DISCLAIMER
176 %attr(755,root,root) %{_sbindir}/splat
177 %{_mandir}/man1/splat.1*