cd32370e43a0cff28f576bd6313ed0b3d299fab9
[kernel/linux-3.0.git] / packaging / linux-3.0.spec
1 %define config_name trats2_defconfig
2 %define buildarch arm
3 %define target_board trats2
4 %define variant %{buildarch}-%{target_board}
5
6 Name: linux-3.0
7 Summary: The Linux Kernel
8 Version: 3.0.101
9 Release: 0
10 License: GPL-2.0
11 Group: System Environment/Kernel
12 Vendor: The Linux Community
13 URL: http://www.kernel.org
14 Source0: linux-3.0.101.tar.gz
15 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
16 Provides: linux-3.0.101
17 %define __spec_install_post /usr/lib/rpm/brp-compress || :
18 %define debug_package %{nil}
19
20 %define fullVersion %{version}-%{config_name}
21
22 BuildRequires:  cpio
23 BuildRequires:  lzma
24 BuildRequires:  python
25 BuildRequires:  binutils-devel
26 BuildRequires:  lzop
27 BuildRequires:  module-init-tools
28 %ifarch %arm
29 BuildRequires:  u-boot-tools
30 %endif
31 ExclusiveArch:  %arm i586 i686
32
33 %package -n %{variant}-linux-kernel
34 Summary: Tizen kernel
35 Group: System/Kernel
36 Provides: kernel-uname-r = %{fullVersion}
37
38 %description
39 The Linux Kernel, the operating system core itself
40
41 %description -n %{variant}-linux-kernel
42 This package contains the Linux kernel for Tizen (%{profile} profile, arch %{buildarch}, target board %{target_board})
43
44 %package -n kernel-headers-%{name}
45 Summary:        Linux support headers for userspace development
46 Group:          Development/System
47 Obsoletes:      kernel-headers
48 Provides:       kernel-headers = %{version}-%{release}
49 ExclusiveArch:  %arm i586 i686
50
51 %description -n kernel-headers-%{name}
52 This package provides userspaces headers from the Linux kernel.  These
53 headers are used by the installed headers for GNU glibc and other system
54  libraries.
55
56 %package -n %{variant}-linux-kernel-modules
57 Summary:        Linux kernel modules
58 Group:          Development/System
59 Provides: kernel-modules = %{fullVersion}
60 Provides: kernel-modules-uname-r = %{fullVersion}
61 ExclusiveArch:  %arm
62
63 %description -n %{variant}-linux-kernel-modules
64 This package provides kernel modules.
65
66 %package -n %{variant}-linux-kernel-devel
67 Summary:        Prebuild Linux kernel
68 Group:          Development/System
69 Provides: kernel-devel = %{fullVersion}
70 Provides: kernel-devel-uname-r = %{fullVersion}
71 ExclusiveArch:  %arm
72
73 %description -n %{variant}-linux-kernel-devel
74 Prebuild linux kernel
75
76 %package -n %{variant}-linux-kernel-debug
77 Summary:        Debug package for %{variant} kernel
78 Group:          Development/System
79 ExclusiveArch:  %arm
80
81 %description -n %{variant}-linux-kernel-debug
82 Debug package for %{variant} kernel
83
84 %prep
85 %setup -q
86
87 %build
88 # 1. Compile sources
89 %ifarch %arm
90 # Make sure EXTRAVERSION says what we want it to say
91 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{config_name}/" Makefile
92
93 make %{config_name}
94 make %{?_smp_mflags} uImage
95
96 # 2. Build modules
97 make modules %{?_smp_mflags}
98 %endif
99
100 # 4. Create tar repo for build directory
101 tar cpf linux-kernel-build-%{fullVersion}.tar .
102
103 %install
104
105 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
106
107 # 1. Destination directories
108 mkdir -p %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}
109
110 %ifarch %arm
111 mkdir -p %{buildroot}/boot/
112 mkdir -p %{buildroot}/lib/modules/%{fullVersion}
113 mkdir -p %{buildroot}/var/tmp/kernel/
114
115 # 2. Install zImage, System.map
116 install -m 755 arch/arm/boot/uImage %{buildroot}/boot/
117 install -m 644 System.map %{buildroot}/boot/System.map-%{fullVersion}
118 install -m 644 .config %{buildroot}/boot/config-%{fullVersion}
119 install -m 755 arch/arm/boot/uImage %{buildroot}/var/tmp/kernel/
120 install -m 644 vmlinux %{buildroot}/var/tmp/kernel/
121 install -m 644 .config %{buildroot}/var/tmp/kernel/config
122 install -m 644 System.map %{buildroot}/var/tmp/kernel/System.map
123
124 # 3. Install modules
125 make -j8 INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot}/ modules_install KERNELRELEASE=%{fullVersion}
126 %endif
127
128 # 4. Install kernel headers
129 make -j8 INSTALL_PATH=%{buildroot} INSTALL_MOD_PATH=%{buildroot} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
130
131 %ifarch %arm
132 # 5. Restore source and build irectory
133 tar -xf linux-kernel-build-%{fullVersion}.tar -C %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}
134 #ls %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}
135 #ls %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch
136 #ls %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/%{buildarch}
137 #mv %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/%{buildarch} .
138 #mv %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/Kconfig .
139 #rm -rf %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/*
140 #mv %{buildarch} %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/
141 #mv Kconfig      %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/arch/
142
143 # 6. Remove files
144 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name ".tmp_vmlinux*" -exec rm -f {} \;
145 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name ".gitignore" -exec rm -f {} \;
146 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name ".*dtb*tmp" -exec rm -f {} \;
147 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.*tmp" -exec rm -f {} \;
148 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "vmlinux" -exec rm -f {} \;
149 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "uImage" -exec rm -f {} \;
150 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "zImage" -exec rm -f {} \;
151 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "test-*" -exec rm -f {} \;
152 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.cmd" -exec rm -f {} \;
153 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.ko" -exec rm -f {} \;
154 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.o" -exec rm -f {} \;
155 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.S" -exec rm -f {} \;
156 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.s" -exec rm -f {} \;
157 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -name "*.c" -not -path "%{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/scripts/*" -exec rm -f {} \;
158 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion} -size 0c -exec rm -f {} \;
159 %endif
160
161 find %{buildroot}/usr/include -name "\.install"  -exec rm -f {} \;
162 find %{buildroot}/usr -name "..install.cmd" -exec rm -f {} \;
163
164 %ifarch %arm
165 # 6.1 Clean Documentation directory
166 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/Documentation -type f ! -name "Makefile" ! -name "*.sh" ! -name "*.pl" -exec rm -f {} \;
167
168 rm -rf %{buildroot}/boot/vmlinux*
169 rm -rf %{buildroot}/System.map*
170 rm -rf %{buildroot}/vmlinux*
171
172 # 7. Update file permisions
173 %define excluded_files ! -name "*.h" ! -name "*.cocci" ! -name "*.tst" ! -name "*.y" ! -name "*.in" ! -name "*.gperf" ! -name "*.PL" ! -name "lex*" ! -name "check-perf-tracei.pl" ! -name "*.*shipped" ! -name "*asm-generic" ! -name "Makefile*" ! -name "*.lds" ! -name "mkversion" ! -name "zconf.l" ! -name "README" ! -name "*.py" ! -name "gconf.glade" ! -name "*.cc" ! -name "dbus_contexts" ! -name "*.pm" ! -name "*.xs" ! -name "*.l" ! -name "EventClass.py" ! -name "typemap" ! -name "net_dropmonitor.py"
174
175 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/tools/perf/scripts/ -type f %{excluded_files} -exec chmod 755 {} \;
176 find %{buildroot}/usr/src/linux-kernel-build-%{fullVersion}/scripts/            -type f %{excluded_files} -exec chmod 755 {} \;
177 find %{buildroot}/usr                                                           -type f ! -name "check-perf-tracei.pl" -name "*.sh" -name "*.pl" -exec chmod 755 {} \;
178 find %{buildroot}/lib/modules/ -name "*.ko"                                     -type f -exec chmod 755 {} \;
179
180 # 8. Create symbolic links
181 rm -f %{buildroot}/lib/modules/%{fullVersion}/build
182 rm -f %{buildroot}/lib/modules/%{fullVersion}/source
183 ln -sf /usr/src/linux-kernel-build-%{fullVersion} %{buildroot}/lib/modules/%{fullVersion}/build
184 %endif
185
186 %clean
187 rm -rf %{buildroot}
188
189 %files -n kernel-headers-%{name}
190 %defattr(-,root,root)
191 /usr/include/*
192
193 %ifarch %arm
194 %files -n %{variant}-linux-kernel-devel
195 %defattr(-,root,root)
196 /usr/src/linux-kernel-build-%{fullVersion}
197 /lib/modules/%{fullVersion}/modules.*
198 /lib/modules/%{fullVersion}/build
199
200 %files -n %{variant}-linux-kernel-modules
201 %defattr(-,root,root)
202 /lib/modules/%{fullVersion}/kernel
203 /lib/modules/%{fullVersion}/modules.*
204
205 %files -n %{variant}-linux-kernel-debug
206 %defattr(-,root,root)
207 /var/tmp/kernel/uImage
208 /var/tmp/kernel/vmlinux
209 /var/tmp/kernel/config
210 /var/tmp/kernel/System.map
211
212 %files -n %{variant}-linux-kernel
213 %defattr(-,root,root)
214 /boot/System.map*
215 /boot/config*
216 /boot/uImage
217 %endif