- update to 2.6.0-test2
[opensuse:kernel-source.git] / kernel-source-26.spec
1 #
2 # spec file for package kernel-source-26
3 #
4 # Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
5 # This file and all modifications and additions to the pristine
6 # package are under the same license as the package itself.
7 #
8 # Please submit bugfixes or comments via http://www.suse.de/feedback/
9 #
10
11 # neededforbuild  modutils
12 # usedforbuild    aaa_base acl attr bash bind9-utils bison cpio cpp cvs cyrus-sasl db devs diffutils e2fsprogs file filesystem fileutils fillup findutils flex gawk gdbm-devel glibc glibc-devel glibc-locale gpm grep groff gzip kbd less libacl libattr libgcc libstdc++ libxcrypt m4 make man mktemp modutils ncurses ncurses-devel net-tools netcfg pam pam-devel pam-modules patch permissions ps rcs readline sed sendmail sh-utils shadow strace syslogd sysvinit tar texinfo textutils timezone unzip util-linux vim zlib-devel autoconf automake binutils bzip2 cracklib gcc gdbm gettext libtool perl rpm zlib
13
14 Name:         kernel-source-26
15 License:      GPL
16 Provides:     linux
17 BuildRequires: modutils
18 Autoreqprov:  off
19 Summary:      The Linux kernel (the core of the Linux operating system)
20 Group:        Development/Sources
21 Requires:     make c_compiler
22 # rpm doesn't like '-' in Version ...
23 Version:      2.6.0test2
24 %define kversion 2.6.0-test2
25 Release:      0
26 Source0:      linux-%{kversion}.tar.bz2
27 Source10:     series.conf
28 Source11:     arch-symbols
29 Source12:     guards
30 Source20:     config.tar.bz2
31 Source21:     config.conf
32 Source100:    patches.arch.tar.bz2
33 Source101:    patches.fixes.tar.bz2
34 Source102:    patches.drivers.tar.bz2
35 Source103:    patches.rpmify.tar.bz2
36 %define ver_str %{kversion}-%release
37 BuildRoot:    %_tmppath/linux-%ver_str-build
38 Prefix:       /usr/src
39
40 %description
41 Linux Kernel sources with many Improvements and Fixes.
42
43 Authors:
44 --------
45     Linus Torvalds <torvalds@transmeta.com>
46     
47     see /usr/src/linux/CREDITS for more details.
48
49
50 %prep
51 ###################################################################
52 # This package builds the SuSE Linux kernel source tree by adding
53 # up the vanillia kernelsource, a lot of patches and kernel
54 # configuration.
55 #
56 # _target_cpu can be set manually with the --target=XXX option to
57 # rpm.  default _target_cpu is $RPM_ARCH
58 # you may use this to test build the package for say s390 on a ia32
59 # host
60 ###################################################################
61
62 # Determine which symbols to use for controlling the patch/file
63 # selection mechanism.
64
65 export PATCH_ARCH=%_target_cpu
66
67 chmod +x %_sourcedir/arch-symbols
68 SYMBOLS="$(%_sourcedir/arch-symbols)"
69 if [ -z "$SYMBOLS" ]; then
70     echo "Unsupported architecture \`$ARCH'" >&2
71     exit 1
72 fi
73 if [ -e %_sourcedir/extra-symbols ]; then
74     SYMBOLS="$SYMBOLS $(cat %_sourcedir/extra-symbols)"
75 fi
76 echo "Architecture symbol(s): $SYMBOLS"
77
78 # Write symbols to %_builddir/symbols so that other RPM sections
79 # can use the identical symbols. (Currently not needed!)
80 #echo $SYMBOLS > %_builddir/symbols
81
82 # Unpack all sources and patches
83
84 %setup -q -T -n config          -b 20
85 %setup -q -T -n patches.arch    -b 100
86 %setup -q -T -n patches.fixes   -b 101
87 %setup -q -T -n patches.drivers -b 102
88 %setup -q -T -n patches.rpmify  -b 103
89
90 # the kernel source tree is unpacked last so that RPM_BUILD_DIR
91 # points to the right path, /usr/src/packages/BUILD/linux-%version
92 %setup -q -n linux-%{kversion}
93
94 # Apply the patches needed for this architecture.
95
96 chmod +x %_sourcedir/guards
97 for patch in $(%_sourcedir/guards $SYMBOLS < %_sourcedir/series.conf); do
98     if ! patch -s -E -p1 --no-backup-if-mismatch -i ../$patch; then
99         echo "*** Patch $patch failed ***"
100         exit 1
101     fi
102 done
103
104 # config_subst makes sure that CONFIG_CFGNAME and CONFIG_RELEASE are
105 # set correctly.
106
107 config_subst()
108 {
109     local name=$1 release=$2
110     awk '
111         function print_name(force)
112         {
113             if (!done_name || force)
114                 printf "CONFIG_CFGNAME=\"%s\"\n", "'"$name"'"
115             done_name=1
116         }
117         function print_release(force)
118         {
119             if (!done_release || force)
120                 printf "CONFIG_RELEASE=%d\n", '"$release"'
121             done_release=1
122         }
123
124         /\<CONFIG_CFGNAME\>/    { print_name(1) ; next }
125         /\<CONFIG_RELEASE\>/    { print_release(1) ; next }
126                                 { print }
127         END                     { print_name(0) ; print_release(0) }
128     '
129     #echo "CONFIG_MODVERSIONS=y"
130 }
131
132 # Install all config files that make sense for that particular
133 # kernel.
134
135 for config in $(%_sourcedir/guards $SYMBOLS < %_sourcedir/config.conf); do
136     name=$(basename $config)
137     path=arch/$(dirname $config)/defconfig.$name
138     mkdir -p $(dirname $path)
139     if [ "${config/*\//}" = "default" ]; then
140         config_subst $name %release \
141             < %_builddir/config/$config \
142             > ${path%.default}
143     fi
144     config_subst $name %release \
145         < %_builddir/config/$config \
146         > $path
147 done
148 chmod +x arch/ia64/scripts/toolchain-flags
149
150
151 %build
152 ###################################################################
153 export RPM_TARGET=%_target_cpu
154 case $RPM_TARGET in
155 i?86)
156     RPM_TARGET=i386 ;;
157 esac
158
159 if [ "$RPM_TARGET" != "$HOSTTYPE" ]; then
160     echo "CONFIG_CROSSCOMPILE=y" >> .config
161     MAKE_ARGS="ARCH=$RPM_TARGET"
162 fi
163 yes "" | make $MAKE_ARGS oldconfig
164
165 make -s $MAKE_ARGS include/linux/version.h
166
167 # Collect the filelist. (Not needed at the moment.)
168 #find . -mindepth 1 -not -path ./linux.files > linux.files
169
170
171 %install
172 ###################################################################
173 export RPM_TARGET=%_target_cpu
174 case $RPM_TARGET in
175 i?86)
176     RPM_TARGET=i386 ;;
177 esac
178
179 if [ "$RPM_TARGET" != "$HOSTTYPE" ]; then
180     MAKE_ARGS="$MAKE_ARGS ARCH=$RPM_TARGET"
181 fi
182
183 # Set up $RPM_BUILD_ROOT
184
185 rm -rf $RPM_BUILD_ROOT
186 mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%ver_str
187 ln -sf linux-%ver_str $RPM_BUILD_ROOT/usr/src/linux
188 #cpio -p $RPM_BUILD_ROOT/usr/src/linux-%ver_str < linux.files
189 cp -dpR --parents . $RPM_BUILD_ROOT/usr/src/linux-%ver_str
190
191 # Do a test build to catch the most stupid mistakes early.
192
193 if [ ! -e %_sourcedir/skip-build ]; then
194 make $MAKE_ARGS vmlinux
195 fi
196
197
198 %files
199 /usr/src/linux
200 /usr/src/linux-%ver_str