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