- rpm/kernel-source.spec.in, rpm/mkspec: Fix tarball URL for -rcX and
[opensuse:kernel-source.git] / rpm / kernel-source.spec.in
1 #
2 # spec file for package kernel-source@VARIANT@
3 #
4 # Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany.
5 #
6 # All modifications and additions to the file contributed by third parties
7 # remain the property of their copyright owners, unless otherwise agreed
8 # upon. The license for this file, and modifications and additions to the
9 # file, is the same license as for the pristine package itself (unless the
10 # license for the pristine package is not an Open Source License, in which
11 # case the license is the MIT License). An "Open Source License" is a
12 # license that conforms to the Open Source Definition (Version 1.9)
13 # published by the Open Source Initiative.
14
15 # Please submit bugfixes or comments via http://bugs.opensuse.org/
16 #
17
18 # norootforbuild
19 # icecream 0
20
21 %define srcversion @SRCVERSION@
22 %define patchversion @PATCHVERSION@
23 %define variant @VARIANT@%{nil}
24 %define vanilla_only @VANILLA_ONLY@
25
26 %include %_sourcedir/kernel-spec-macros
27
28 %define src_install_dir usr/src/linux-%kernelrelease%variant
29
30 Name:           kernel-source@VARIANT@
31 Summary:        The Linux Kernel Sources
32 Version:        @RPMVERSION@
33 Release:        @RELEASE@
34 License:        GPL-2.0
35 Group:          Development/Sources
36 Url:            http://www.kernel.org/
37 AutoReqProv:    off
38 BuildRequires:  coreutils sed
39 BuildRequires:  fdupes
40 Requires(post): coreutils sed
41 Provides:       multiversion(kernel)
42 Provides:       linux
43 Provides:       %name = %version-%source_rel
44 Source0:        @TARBALL_URL@linux-%srcversion.tar.bz2
45 Source2:        source-post.sh
46 Source3:        kernel-source.rpmlintrc
47 Source8:        devel-pre.sh
48 Source9:        devel-post.sh
49 Source10:       preun.sh
50 Source11:       postun.sh
51 Source12:       pre.sh
52 Source13:       post.sh
53 Source14:       series.conf
54 Source16:       guards
55 Source17:       apply-patches
56 Source21:       config.conf
57 Source23:       supported.conf
58 Source33:       check-for-config-changes
59 Source34:       check-supported-list
60 Source35:       group-source-files.pl
61 Source37:       README.SUSE
62 Source38:       README.KSYMS
63 Source39:       config-options.changes.txt
64 Source40:       source-timestamp
65 Source44:       find-provides
66 Source45:       split-modules
67 Source46:       modversions
68 Source48:       macros.kernel-source
69 Source49:       kernel-module-subpackage
70 Source50:       kabi.pl
71 Source51:       mkspec
72 Source52:       kernel-source%variant.changes
73 Source53:       kernel-source.spec.in
74 Source54:       kernel-binary.spec.in
75 Source55:       kernel-syms.spec.in
76 Source56:       kernel-docs.spec.in
77 Source60:       config.sh
78 Source61:       compute-PATCHVERSION.sh
79 Source62:       old-packages.conf
80 Source63:       arch-symbols
81 Source64:       package-descriptions
82 Source65:       kernel-spec-macros
83 Source66:       configtool.pl
84 Source67:       log.sh
85 Source68:       host-memcpy-hack.h
86 Source69:       try-disable-staging-driver
87 Source100:      config.tar.bz2
88 Source101:      config.addon.tar.bz2
89 Source102:      patches.arch.tar.bz2
90 Source103:      patches.drivers.tar.bz2
91 Source104:      patches.fixes.tar.bz2
92 Source105:      patches.rpmify.tar.bz2
93 Source106:      patches.suse.tar.bz2
94 Source107:      patches.xen.tar.bz2
95 Source108:      patches.addon.tar.bz2
96 Source109:      patches.kernel.org.tar.bz2
97 Source110:      patches.apparmor.tar.bz2
98 Source111:      patches.rt.tar.bz2
99 Source112:      patches.trace.tar.bz2
100 Source113:      patches.kabi.tar.bz2
101 Source120:      kabi.tar.bz2
102 Source121:      sysctl.tar.bz2
103 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
104 BuildArch:      noarch
105 Prefix:         /usr/src
106 # Source is only complete with devel files.
107 Requires:       kernel-devel = %version-%release
108
109 %(chmod +x %_sourcedir/{@SCRIPTS@})
110
111 %define symbols %(set -- $([ -e %_sourcedir/extra-symbols ] && cat %_sourcedir/extra-symbols) ; echo $*)
112 %define variant_symbols %(case %name in (*-rt) echo "RT" ;; esac)
113
114 %define do_vanilla "%variant" == ""
115
116 %description
117 Linux kernel sources with many fixes and improvements.
118
119
120 %source_timestamp
121 %package -n kernel-devel%variant
122 Summary:        Development files needed for building kernel modules
123 Group:          Development/Sources
124 AutoReqProv:    off
125 Provides:       multiversion(kernel)
126 Provides:       kernel-devel%variant = %version-%source_rel
127
128 %description -n kernel-devel%variant
129 Kernel-level headers and Makefiles required for development of
130 external kernel modules.
131
132
133 %source_timestamp
134 %package vanilla
135 Summary:        Vanilla Linux kernel sources with minor build fixes.
136 Group:          Development/Sources
137 AutoReqProv:    off
138 Provides:       multiversion(kernel)
139 Provides:       %name-vanilla = %version-%source_rel
140
141 %description vanilla
142 Vanilla Linux kernel sources with minor build fixes.
143
144
145 %source_timestamp
146 %prep
147 if ! [ -e %_sourcedir/linux-%srcversion.tar.bz2 ]; then
148     echo "Please get a copy of linux-%srcversion.tar.bz2 from" \
149          "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/."
150 fi
151
152 echo "Symbol(s): %symbols"
153
154 # Unpack all sources and patches
155 %setup -q -c -T @UNPACK_PATCHES@
156
157 %build
158 mkdir -p $RPM_BUILD_ROOT/usr/src
159 cd $RPM_BUILD_ROOT/usr/src
160
161 # Unpack the vanilla kernel sources
162 tar -xjf %_sourcedir/linux-%srcversion.tar.bz2
163 if test "%srcversion" != "%kernelrelease%variant"; then
164         mv linux-%srcversion linux-%kernelrelease%variant
165 fi
166
167 %if %do_vanilla
168 %if %vanilla_only
169         mv \
170 %else
171         cp -al \
172 %endif
173         linux-%kernelrelease%variant linux-%kernelrelease-vanilla
174 cd linux-%kernelrelease-vanilla
175 %_sourcedir/apply-patches --vanilla %_sourcedir/series.conf %my_builddir %symbols
176 rm -f $(find . -name ".gitignore")
177 cd ..
178 %endif
179
180 %if ! %vanilla_only
181 ln -sf linux%variant linux%variant  # dummy symlink
182
183 cd linux-%kernelrelease%variant
184 %_sourcedir/apply-patches %_sourcedir/series.conf %my_builddir %symbols
185 rm -f $(find . -name ".gitignore")
186
187 if [ -f %_sourcedir/localversion ] ; then
188     cat %_sourcedir/localversion > localversion
189 fi
190 %endif
191
192 # Hardlink duplicate files automatically (from package fdupes).
193 %fdupes $RPM_BUILD_ROOT
194
195 %install
196 %if ! %vanilla_only
197 # Install the documentation and example Kernel Module Package.
198 DOC=$RPM_BUILD_ROOT/usr/share/doc/packages/%name
199 mkdir -p $DOC
200 cp %_sourcedir/README.SUSE %_sourcedir/config-options.changes.txt $DOC
201 ln -s /usr/share/doc/packages/%name/README.SUSE %buildroot/%src_install_dir/
202
203 install -m 755 -d $RPM_BUILD_ROOT/etc/rpm
204 install -m 644 %_sourcedir/macros.kernel-source $RPM_BUILD_ROOT/etc/rpm/
205 install -m 755 -d $RPM_BUILD_ROOT/usr/lib/rpm
206 install -m 644 %_sourcedir/kernel-module-subpackage \
207     $RPM_BUILD_ROOT/usr/lib/rpm/
208
209 for script in post; do
210     sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \
211         -e "s:@SRCVARIANT@:%variant:g" \
212         %_sourcedir/source-$script.sh > %name-$script.sh
213 done
214
215 pushd "%buildroot"
216 perl "%_sourcedir/group-source-files.pl" \
217         -D "$OLDPWD/devel.files" -N "$OLDPWD/nondevel.files" \
218         -L "%src_install_dir"
219 popd
220
221 # kernel-source and kernel-$flavor-devel are built independently, but the
222 # shipped sources (/usr/src/linux/) need to be older than generated files
223 # (/usr/src/linux-obj). We rely on the git commit timestamp to not point into
224 # the future and be thus lower than the timestamps of files built from the
225 # source (bnc#669669).
226 ts="$(head -n1 %_sourcedir/source-timestamp)"
227 find %buildroot/usr/src/linux* ! -type l | xargs touch -d "$ts"
228
229 %post -f %name-post.sh
230
231 %post -n kernel-devel%variant -f %name-post.sh
232
233 %files -f nondevel.files
234 %defattr(-, root, root)
235 /usr/src/linux%variant-%kernelrelease/README.SUSE
236
237 %files -n kernel-devel%variant -f devel.files
238 %defattr(-,root,root)
239 %ghost /usr/src/linux%variant
240 /usr/share/doc/packages/%name
241 /etc/rpm/macros.kernel-source
242 /usr/lib/rpm/kernel-module-subpackage
243 %endif
244
245 %if %do_vanilla
246
247 %files vanilla
248 %defattr(-, root, root)
249 /usr/src/linux-%kernelrelease-vanilla
250 %endif
251
252 %changelog