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 URL: http://zfsonlinux.org/
55 BuildRequires: rpmbuild(macros) >= 1.678
56 %{?with_dist_kernel:%{expand:%kbrs}}
57 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 Solaris Porting Layer.
62 %description -l pl.UTF-8
63 Solaris Porting Layer - warstwa do portowania kodu z Solarisa.
66 %package -n kernel%{_alt_kernel}-spl\
67 Summary: Solaris Porting Layer - Linux kernel modules\
68 Summary(pl.UTF-8): Solaris Porting Layer - moduły jądra Linuksa\
69 Release: %{rel}@%{_kernel_ver_str}\
71 Requires(post,postun): /sbin/depmod\
72 %if %{with dist_kernel}\
73 %requires_releq_kernel\
74 Requires(postun): %releq_kernel\
77 %description -n kernel%{_alt_kernel}-spl\
78 Solaris Porting Layer - Linux kernel modules.\
80 %description -n kernel%{_alt_kernel}-spl -l pl.UTF-8\
81 Solaris Porting Layer - moduły jądra Linuksa.\
83 %package -n kernel%{_alt_kernel}-spl-devel\
84 Summary: Solaris Porting Layer - Linux kernel headers\
85 Summary(pl.UTF-8): Solaris Porting Layer - pliki nagłówkowe jądra Linuksa\
86 Release: %{rel}@%{_kernel_ver_str}\
87 Group: Development/Building\
88 %{?with_dist_kernel:Requires: kernel%{_alt_kernel}-headers}\
90 %description -n kernel%{_alt_kernel}-spl-devel\
91 Solaris Porting Layer - Linux kernel headers configured for PLD\
92 kernel%{_alt_kernel}, version %{_kernel_ver}.\
94 %description -n kernel%{_alt_kernel}-spl-devel -l pl.UTF-8\
95 Solaris Porting Layer - pliki nagłówkowe jądra Linuksa skonfigurowane\
96 dla jądra PLD z pakietu kernel%{_alt_kernel} w wersji %{_kernel_ver}.\
98 %files -n kernel%{_alt_kernel}-spl\
99 %defattr(644,root,root,755)\
100 %dir /lib/modules/%{_kernel_ver}/misc/spl\
101 /lib/modules/%{_kernel_ver}/misc/spl/spl.ko*\
102 %dir /lib/modules/%{_kernel_ver}/misc/splat\
103 /lib/modules/%{_kernel_ver}/misc/splat/splat.ko*\
105 %files -n kernel%{_alt_kernel}-spl-devel\
106 %defattr(644,root,root,755)\
107 %dir /usr/src/spl-%{version}\
108 /usr/src/spl-%{version}/spl*.in\
109 /usr/src/spl-%{version}/include\
110 /usr/src/spl-%{version}/%{_kernel_ver}\
112 %post -n kernel%{_alt_kernel}-spl\
113 %depmod %{_kernel_ver}\
115 %postun -n kernel%{_alt_kernel}-spl\
116 %depmod %{_kernel_ver}\
119 %define build_kernel_pkg()\
121 --disable-silent-rules \\\
122 --with-config="kernel" \\\
123 --with-linux=%{_kernelsrcdir}\
126 %{__make} %{?with_verbose:V=1}\
128 %{__make} install DESTDIR=$p/installed INSTALL_MOD_DIR=misc\
131 %{?with_kernel:%{expand:%kpkg}}
134 %setup -q -n %{pname}-%{version}
137 %{__aclocal} -I config
141 %{?with_kernel:%{expand:%bkpkg}}
143 %if %{with userspace}
145 --disable-silent-rules \
153 rm -rf $RPM_BUILD_ROOT
156 install -d $RPM_BUILD_ROOT
157 cp -a installed/* $RPM_BUILD_ROOT
160 %if %{with userspace}
162 DESTDIR=$RPM_BUILD_ROOT
166 rm -rf $RPM_BUILD_ROOT
168 %if %{with userspace}
170 %defattr(644,root,root,755)
171 %doc AUTHORS DISCLAIMER
172 %attr(755,root,root) %{_sbindir}/splat
173 %{_mandir}/man1/splat.1*
174 %{_mandir}/man5/spl-module-parameters.5.gz