2.5.70 update
[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 Version:      2.5.70
23 Release:      0
24 Source0:      linux-%version.tar.bz2
25 Source10:     series.conf
26 Source11:     arch-symbols
27 Source12:     guards
28 Source20:     config.tar.bz2
29 Source21:     config.conf
30 Source100:    patches.arch.tar.bz2
31 Source101:    patches.fixes.tar.bz2
32 Source102:    patches.drivers.tar.bz2
33 Source103:    patches.rpmify.tar.bz2
34 %define ver_str %version-%release
35 BuildRoot:    %_tmppath/linux-%ver_str-build
36 Prefix:       /usr/src
37
38 %description
39 Linux Kernel sources with many Improvements and Fixes.
40
41 Authors:
42 --------
43     Linus Torvalds <torvalds@transmeta.com>
44     
45     see /usr/src/linux/CREDITS for more details.
46
47
48 %prep
49 ###################################################################
50 # This package builds the SuSE Linux kernel source tree by adding
51 # up the vanillia kernelsource, a lot of patches and kernel
52 # configuration.
53 #
54 # _target_cpu can be set manually with the --target=XXX option to
55 # rpm.  default _target_cpu is $RPM_ARCH
56 # you may use this to test build the package for say s390 on a ia32
57 # host
58 ###################################################################
59
60 # Determine which symbols to use for controlling the patch/file
61 # selection mechanism.
62
63 export PATCH_ARCH=%_target_cpu
64
65 chmod +x %_sourcedir/arch-symbols
66 SYMBOLS="$(%_sourcedir/arch-symbols)"
67 if [ -z "$SYMBOLS" ]; then
68     echo "Unsupported architecture \`$ARCH'" >&2
69     exit 1
70 fi
71 if [ -e %_sourcedir/extra-symbols ]; then
72     SYMBOLS="$SYMBOLS $(cat %_sourcedir/extra-symbols)"
73 fi
74 echo "Architecture symbol(s): $SYMBOLS"
75
76 # Write symbols to %_builddir/symbols so that other RPM sections
77 # can use the identical symbols. (Currently not needed!)
78 #echo $SYMBOLS > %_builddir/symbols
79
80 # Unpack all sources and patches
81
82 %setup -q -T -n config          -b 20
83 %setup -q -T -n patches.arch    -b 100
84 %setup -q -T -n patches.fixes   -b 101
85 %setup -q -T -n patches.drivers -b 102
86 %setup -q -T -n patches.rpmify  -b 103
87
88 # the kernel source tree is unpacked last so that RPM_BUILD_DIR
89 # points to the right path, /usr/src/packages/BUILD/linux-%version
90 %setup -q -n linux-%version
91
92 # Apply the patches needed for this architecture.
93
94 chmod +x %_sourcedir/guards
95 for patch in $(%_sourcedir/guards $SYMBOLS < %_sourcedir/series.conf); do
96     if ! patch -s -E -p1 --no-backup-if-mismatch -i ../$patch; then
97         echo "*** Patch $patch failed ***"
98         exit 1
99     fi
100 done
101
102 # config_subst makes sure that CONFIG_CFGNAME and CONFIG_RELEASE are
103 # set correctly.
104
105 config_subst()
106 {
107     local name=$1 release=$2
108     awk '
109         function print_name(force)
110         {
111             if (!done_name || force)
112                 printf "CONFIG_CFGNAME=\"%s\"\n", "'"$name"'"
113             done_name=1
114         }
115         function print_release(force)
116         {
117             if (!done_release || force)
118                 printf "CONFIG_RELEASE=%d\n", '"$release"'
119             done_release=1
120         }
121
122         /\<CONFIG_CFGNAME\>/    { print_name(1) ; next }
123         /\<CONFIG_RELEASE\>/    { print_release(1) ; next }
124                                 { print }
125         END                     { print_name(0) ; print_release(0) }
126     '
127     #echo "CONFIG_MODVERSIONS=y"
128 }
129
130 # Install all config files that make sense for that particular
131 # kernel.
132
133 for config in $(%_sourcedir/guards $SYMBOLS < %_sourcedir/config.conf); do
134     name=$(basename $config)
135     path=arch/$(dirname $config)/defconfig.$name
136     mkdir -p $(dirname $path)
137     if [ "${config/*\//}" = "default" ]; then
138         config_subst $name %release \
139             < %_builddir/config/$config \
140             > ${path%.default}
141     fi
142     config_subst $name %release \
143         < %_builddir/config/$config \
144         > $path
145 done
146
147
148 %build
149 ###################################################################
150 export RPM_TARGET=%_target_cpu
151 case $RPM_TARGET in
152 i?86)
153     RPM_TARGET=i386 ;;
154 esac
155
156 if [ "$RPM_TARGET" != "$HOSTTYPE" ]; then
157     echo "CONFIG_CROSSCOMPILE=y" >> .config
158     MAKE_ARGS="ARCH=$RPM_TARGET"
159 fi
160 yes "" | make $MAKE_ARGS oldconfig
161
162 make -s $MAKE_ARGS include/linux/version.h
163
164 # Collect the filelist. (Not needed at the moment.)
165 #find . -mindepth 1 -not -path ./linux.files > linux.files
166
167
168 %install
169 ###################################################################
170 export RPM_TARGET=%_target_cpu
171 case $RPM_TARGET in
172 i?86)
173     RPM_TARGET=i386 ;;
174 s390*)
175     MAKE_ARGS="CROSS_COMPILE=$RPM_TARGET-linux-" ;;
176 esac
177
178 if [ "$RPM_TARGET" != "$HOSTTYPE" ]; then
179     MAKE_ARGS="$MAKE_ARGS ARCH=$RPM_TARGET"
180 fi
181
182 # Set up $RPM_BUILD_ROOT
183
184 rm -rf $RPM_BUILD_ROOT
185 mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%ver_str
186 ln -sf linux-%ver_str $RPM_BUILD_ROOT/usr/src/linux
187 #cpio -p $RPM_BUILD_ROOT/usr/src/linux-%ver_str < linux.files
188 cp -dpR --parents . $RPM_BUILD_ROOT/usr/src/linux-%ver_str
189
190 # Do a test build to catch the most stupid mistakes early.
191
192 if [ ! -e %_sourcedir/skip-build ]; then
193 make $MAKE_ARGS vmlinux
194 fi
195
196
197 %files
198 /usr/src/linux
199 /usr/src/linux-%ver_str