Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > b35174ce264334b93846715790f1d694 > files > 7

kernel-multimedia-2.6.17.14-9mdv2008.0.src.rpm

#
# *mm* series kernels now use kernel.org versioning
#
%define kernelversion	2
%define patchlevel	6
%define sublevel	17

# kernel Makefile extraversion is substituted by 
# kpatch/kstable wich are either 0 (empty), pre/rc (kpatch) or stable release (kstable)
%define kpatch		0
%define kstable		14
# this is the releaseversion
%define kbuild		9

#sometimes it's easier to d/l an updated kernel
%define kstable_tar     1

%define ktag 		mm
%define kname 		kernel-multimedia

%define rpmtag		%distsuffix
%if %kpatch
%define rpmrel         %mkrel 0.%{kpatch}.%{kbuild}
%else
%define rpmrel		%mkrel %{kbuild}
%endif

# theese two never change, they are used to fool rpm/urpmi/smart
%define fakever		1
%define fakerel		%mkrel 1

# on Orion, rpm doesn't know about powerpc yet, temp workaround
%define powerpc		powerpc ppc
%define target_arch     %(echo %{_arch} | sed -e "s/ppc/powerpc/") 

# When we are using a pre/rc patch, the tarball is a sublevel -1
%if %kpatch
%define kversion  %{kernelversion}.%{patchlevel}.%{sublevel}
%define tar_ver	  %{kernelversion}.%{patchlevel}.%(expr %{sublevel} - 1)
%else
%if %kstable
%define kversion  %{kernelversion}.%{patchlevel}.%{sublevel}.%{kstable}
%define tar_ver   %{kernelversion}.%{patchlevel}.%{sublevel}
%else
%define kversion  %{kernelversion}.%{patchlevel}.%{sublevel}
%define tar_ver   %{kversion}
%endif
%endif

%if %kstable_tar
%define tar_ver   %{kernelversion}.%{patchlevel}.%{sublevel}.%{kstable_tar}
%endif

%define patch_ver %{kversion}-%{ktag}%{kbuild}
%define kverrel   %{kversion}-%{rpmrel}

# used for not making too long names for rpms or search paths 
%define buildrpmrel  %{kbuild}%{rpmtag}
%define buildrel     %{kversion}-%{buildrpmrel}

# having different top level names for packges means that you have to remove them by hard :(
%define top_dir_name %{kname}-%{target_arch}

%define build_dir %{_builddir}/%{top_dir_name}
%define src_dir %{build_dir}/linux-%{tar_ver}

# disable useless debug rpms...
%define _enable_debug_packages %{nil}
%define debug_package %{nil}

#generate our own provides
%define _use_internal_dependency_generator 0
%define __original_find_provides %(/bin/rpm --eval '%%{__find_provides}')
%define __find_provides %{build_dir}/find-kmod-provides.sh

# Build defines
%define build_devel 1
%define build_debug 0
%define build_doc 0
%define build_source 1

# Build desktop i686/4GB / x86_64 / powerpc
%define build_desktop_up  1
%define build_desktop_smp 1

# Build laptop i686/4GB / x86_64 / powerpc
%define build_laptop_up  1
#no need for smp laptop kernel on powerpc
%ifnarch %{powerpc}
%define build_laptop_smp 1
%else
%define build_laptop_smp 0
%endif


# End of user definitions
%{?_without_desktop_up: %global build_desktop_up 0}
%{?_without_desktop_smp: %global build_desktop_smp 0}
%{?_without_laptop_up: %global build_laptop_up 0}
%{?_without_laptop_smp: %global build_laptop_smp 0}
%{?_without_debug: %global build_debug 0}
%{?_without_doc: %global build_doc 0}
%{?_without_source: %global build_source 0}
%{?_without_devel: %global build_devel 0}

%{?_with_desktop_up: %global build_desktop_up 1}
%{?_with_desktop_smp: %global build_desktop_smp 1}
%{?_with_laptop_up: %global build_laptop_up 1}
%{?_with_laptop_smp: %global build_laptop_smp 1}
%{?_with_debug: %global build_debug 1}
%{?_with_doc: %global build_doc 1}
%{?_with_source: %global build_source 1}
%{?_with_devel: %global build_devel 1}


# for the nosrc rpms
%define build_nosrc 0
%{?_with_nosrc: %global build_nosrc 1}

%define kmake %make
# there are places where parallel make don't work
%define smake make

# SRC RPM definitions
Summary: Linux kernel built for Mandriva with modifications for low latency
Name: 	 %{kname}
Version: %{kversion}
Release: %{rpmrel}
License: GPL
Group: 	 System/Kernel and hardware
ExclusiveArch: %{ix86} x86_64 %{powerpc}
ExclusiveOS: Linux
URL: http://www.kernel.org/

####################################################################
#
# Sources
#
### This is for full SRC RPM
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2
Source1: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/linux-%{tar_ver}.tar.bz2.sign
### This is for stripped SRC RPM
%if %build_nosrc
NoSource: 0
%endif

Source4: README.kernel-%{ktag}-sources
Source5: README.Mandriva_Linux_%{ktag}
Source6: Changelog.kernel
Source7: README.%{ktag}.urpmi
Source10: Makefile.patch
Source20: find-kmod-provides.sh
Source100: linux-%{patch_ver}.tar.bz2

####################################################################
#
# Patches

#
# Patch0 to Patch100 are for core kernel upgrades.
#

# Pre linus patch: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing

#%if %kpatch
#Patch1:   ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kversion}.bz2
#Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/testing/patch-%{kversion}.bz2.sign
#%elseif %kstable
#Patch1:   ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2
#Source10: ftp://ftp.kernel.org/pub/linux/kernel/v%{kernelversion}.%{patchlevel}/patch-%{kversion}.bz2.sign
#%endif

#END
####################################################################

# Defines for the things that are needed for all the kernels
#
%define kinfo1 The kernel package contains the Linux kernel (vmlinuz), the core of your
%define kinfo2 Mandriva Linux operating system.  The kernel handles the basic functions
%define kinfo3 of the operating system:  memory allocation, process allocation, device

%define updateinfo1 For instructions for update, see:
%define updateinfo2 http://www.mandriva.com/security/kernelupdate

%define info1 The %{ktag} kernels is an experimental kernel based on the kernel.org 
%define info2 kernels with added patches. Some of them may/will never end up in
%define info3 the main kernels due to their experimental nature. Some refer to
%define info4 this kernel as a 'hackkernel' ...
%define info5 Use these kernels at your own risk !!

%define info10 If you want more info on the various %{kname} flavours, please visit:
%define info11 http://www.iki.fi/tmb/Multimedia_Kernels/
 
### Global Requires/Provides
%define requires1 mkinitrd >= 4.2.17-%mkrel 37
%define requires2 bootloader-utils >= 1.12-%mkrel 1 drakxtools-backend >= 10.4.67-%mkrel 1
%define requires3 sysfsutils >= 1.3.0-%mkrel 1 module-init-tools >= 3.2-0.pre8.%mkrel 2

%define kprovides %{kname} = %{kverrel}, kernel = %{kversion}, alsa, drbd-api = 83

BuildRoot: %{_tmppath}/%{kname}-%{kversion}-build
Autoreqprov: no
Requires(pre): %requires1
Requires(pre): %requires2
Requires(pre): %requires3
BuildRequires: gcc >= 4.0.1-%mkrel 5 module-init-tools >= 3.2-0.pre8.%mkrel 2

%description
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop: i686, up, 4GB
#

%package -n %{kname}-desktop-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Provides: %kprovides
Requires(pre): %requires1
Requires(pre): %requires2
Requires(pre): %requires3
Requires: %{kname}-desktop-devel-%{buildrel}
%ifarch %{ix86}
Summary: Linux kernel for desktop use with i686-up-4GB 
%else
Summary: Linux kernel for desktop use with %{target_arch}
%endif
Group: System/Kernel and hardware

%ifarch %{ix86}
%description -n %{kname}-desktop-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for desktop use, single
i686 processor/core and less than 4GB RAM, full preempt, low latency
and cfq scheduler.
%else
%description -n %{kname}-desktop-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for desktop use, single
%{target_arch} processor/core, full preempt, low latency and cfq scheduler.
%endif

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-smp: i686, smp, 4GB
#

%package -n %{kname}-desktop-smp-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Provides: %kprovides
Requires(pre): %requires1
Requires(pre): %requires2
Requires(pre): %requires3
Requires: %{kname}-desktop-smp-devel-%{buildrel}
%ifarch{ix86}
Summary: Linux kernel for desktop use with i686-smp-4GB 
%else
Summary: Linux kernel for desktop use with %{target_arch}-smp
%endif 
Group: System/Kernel and hardware

%ifarch{ix86}
%description -n %{kname}-desktop-smp-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for desktop use, multiple
i686 processors/cores and less than 4GB RAM, full preempt, low latency
and cfq scheduler.
%else
%description -n %{kname}-desktop-smp-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for desktop use, multiple
%{target_arch} processors/cores, full preempt, low latency and cfq scheduler.
%endif

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop: i686, up, 4GB
#

%package -n %{kname}-laptop-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Provides: %kprovides
Requires(pre): %requires1
Requires(pre): %requires2
Requires(pre): %requires3
Requires: %{kname}-laptop-devel-%{buildrel}
%ifarch %{ix86}
Summary: Linux kernel for laptop use with i686-up-4GB 
%else
Summary: Linux kernel for laptop use with %{target_arch}
%endif
Group: System/Kernel and hardware

%ifarch %{ix86}
%description -n %{kname}-laptop-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for laptop use, single
i686 processor/core and less than 4GB RAM, using HZ_100 to save battery,
voluntary preempt and cfq scheduler, and some other laptop-specific
optimizations. If you want to sacrifice battery life for performance,
you better use the %{kname}-desktop.
%else
%description -n %{kname}-laptop-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for laptop use, single
%{target_arch} processor/core, using HZ_100 to save battery, voluntary preempt 
and cfq scheduler, and some other laptop-specific optimizations. If you 
want to sacrifice battery life for performance, you better use the 
%{kname}-desktop.
%endif

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-smp: i686, smp, 4GB
#

%package -n %{kname}-laptop-smp-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Provides: %kprovides
Requires(pre): %requires1
Requires(pre): %requires2
Requires(pre): %requires3
Requires: %{kname}-laptop-smp-devel-%{buildrel}
%ifarch{ix86}
Summary: Linux kernel for laptop use with i686-smp-4GB 
%else
Summary: Linux kernel for laptop use with %{target_arch}-smp
%endif 
Group: System/Kernel and hardware

%ifarch{ix86}
%description -n %{kname}-laptop-smp-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for laptop use, multiple
i686 processors/cores and less than 4GB RAM, using HZ_100 to save battery,
voluntary preempt and cfq scheduler, and some other laptop-specific
optimizations. If you want to sacrifice battery life for performance,
you better use the %{kname}-desktop-smp.
%else
%description -n %{kname}-laptop-smp-%{buildrel}
%{kinfo1}
%{kinfo2}
%{kinfo3}
input and output, etc. This kernel is compiled for desktop use, multiple
%{target_arch} processors/cores, using HZ_100 to save battery, voluntary preempt 
and cfq scheduler, and some other laptop-specific optimizations. If you 
want to sacrifice battery life for performance, you better use the 
%{kname}-desktop-smp.
%endif

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-source
#
%package -n %{kname}-source-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Requires: glibc-devel, ncurses-devel, make, gcc, perl, binutils
Summary: The source code for the Linux %{kname}-%{buildrel}  
Group: Development/Kernel
Autoreqprov: no
Provides: kernel-source kernel-source-fbsplash
Conflicts: %{kname}-source-stripped-%{buildrel}

%description -n %{kname}-source-%{buildrel}
The kernel-source package contains the source code files for the %{ktag} 
Linux kernel. These source files can be used to build a custom kernel 
that is better tuned to your particular hardware, if you are so inclined 
(and you know what you're doing). If you are looking for source files
to build 3rdparty drivers (dkms), please install a kernel-*-devel 
package instead.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-devel
#
%package -n     %{kname}-desktop-devel-%{buildrel}
Version:        %{fakever}
Release:        %{fakerel}
Requires:       glibc-devel, ncurses-devel, make, gcc, perl
Summary:        The kernel-devel files for %{kname}-desktop-%{buildrel}
Group:          Development/Kernel
Autoreqprov:    no
Provides:       kernel-source kernel-source-fbsplash kernel-devel

%description -n %{kname}-desktop-devel-%{buildrel}
This package contains the kernel-devel files that should be enough to build
3rdparty drivers (dkms) against for use with %{kname}-desktop-%{buildrel}.

If you want to build your own kernel, you need to install the full
%{kname}-source-%{buildrel} rpm.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-smp-devel
#
%package -n     %{kname}-desktop-smp-devel-%{buildrel}
Version:        %{fakever}
Release:        %{fakerel}
Requires:       glibc-devel, ncurses-devel, make, gcc, perl
Summary:        The kernel-devel files for %{kname}-desktop-smp-%{buildrel}
Group:          Development/Kernel
Autoreqprov:    no
Provides:       kernel-source kernel-source-fbsplash kernel-devel

%description -n %{kname}-desktop-smp-devel-%{buildrel}
This package contains the kernel-devel files that should be enough to build
3rdparty drivers (dkms) against for use with %{kname}-desktop-smp-%{buildrel}.

If you want to build your own kernel, you need to install the full
%{kname}-source-%{buildrel} rpm.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-devel
#
%package -n     %{kname}-laptop-devel-%{buildrel}
Version:        %{fakever}
Release:        %{fakerel}
Requires:       glibc-devel, ncurses-devel, make, gcc, perl
Summary:        The kernel-devel files for %{kname}-laptop-%{buildrel}
Group:          Development/Kernel
Autoreqprov:    no
Provides:       kernel-source kernel-source-fbsplash kernel-devel

%description -n %{kname}-laptop-devel-%{buildrel}
This package contains the kernel-devel files that should be enough to build
3rdparty drivers against for use with %{kname}-laptop-%{buildrel}.

If you want to build your own kernel, you need to install the full
%{kname}-source-%{buildrel} rpm.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-smp-devel
#
%package -n     %{kname}-laptop-smp-devel-%{buildrel}
Version:        %{fakever}
Release:        %{fakerel}
Requires:       glibc-devel, ncurses-devel, make, gcc, perl
Summary:        The kernel-devel files for %{kname}-laptop-smp-%{buildrel}
Group:          Development/Kernel
Autoreqprov:    no
Provides:       kernel-source kernel-source-fbsplash kernel-devel

%description -n %{kname}-laptop-smp-devel-%{buildrel}
This package contains the kernel-devel files that should be enough to build
3rdparty drivers against for use with %{kname}-laptop-smp-%{buildrel}.

If you want to build your own kernel, you need to install the full
%{kname}-source-%{buildrel} rpm.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-doc: documentation for the Linux kernel
#
%package -n %{kname}-doc-%{buildrel}
Version: %{fakever}
Release: %{fakerel}
Summary: Various documentation bits found in the %{kname} source
Group: Books/Computer books

%description -n %{kname}-doc-%{buildrel}
This package contains documentation files from the %{kname} source. 
Various bits of information about the Linux kernel and the device drivers 
shipped with it are documented in these files. You also might want install 
this package if you need a reference to the options that can be passed to 
Linux kernel modules at load time.

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-latest: virtual rpm
#
%package -n %{kname}-desktop-latest
Version: %{kversion}
Release: %{rpmrel}
Summary: Virtual rpm for latest %{kname}-desktop
Group:   System/Kernel and hardware
Requires: %{kname}-desktop-%{buildrel}

%description -n %{kname}-desktop-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-desktop installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-smp-latest: virtual rpm
#
%package -n %{kname}-desktop-smp-latest
Version: %{kversion}
Release: %{rpmrel}
Summary: Virtual rpm for latest %{kname}-desktop-smp
Group:   System/Kernel and hardware
Requires: %{kname}-desktop-smp-%{buildrel}

%description -n %{kname}-desktop-smp-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-desktop-smp installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-latest: virtual rpm
#
%package -n %{kname}-laptop-latest
Version: %{kversion}
Release: %{rpmrel}
Summary: Virtual rpm for latest %{kname}-laptop
Group:   System/Kernel and hardware
Requires: %{kname}-laptop-%{buildrel}

%description -n %{kname}-laptop-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-laptop installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-smp-latest: virtual rpm
#
%package -n %{kname}-laptop-smp-latest
Version: %{kversion}
Release: %{rpmrel}
Summary: Virtual rpm for latest %{kname}-laptop-smp
Group:   System/Kernel and hardware
Requires: %{kname}-laptop-smp-%{buildrel}

%description -n %{kname}-laptop-smp-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-laptop-smp installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-source-latest: virtual rpm
#
%package -n %{kname}-source-latest
Version: %{kversion}
Release: %{rpmrel}
Summary: Virtual rpm for latest %{kname}-source
Group:   Development/Kernel
Requires: %{kname}-source-%{buildrel}
Conflicts: %{kname}-source-stripped-latest

%description -n %{kname}-source-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-source installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-devel-latest: virtual rpm
#
%package -n %{kname}-desktop-devel-latest
Version:        %{kversion}
Release:        %{rpmrel}
Summary:        Virtual rpm for latest %{kname}-desktop-devel
Group:          Development/Kernel
Requires:       %{kname}-desktop-devel-%{buildrel}

%description -n %{kname}-desktop-devel-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-desktop-devel installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-desktop-smp-devel-latest: virtual rpm
#
%package -n %{kname}-desktop-smp-devel-latest
Version:        %{kversion}
Release:        %{rpmrel}
Summary:        Virtual rpm for latest %{kname}-desktop-smp-devel
Group:          Development/Kernel
Requires:       %{kname}-desktop-smp-devel-%{buildrel}

%description -n %{kname}-desktop-smp-devel-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-desktop-smp-devel installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-devel-latest: virtual rpm
#
%package -n %{kname}-laptop-devel-latest
Version:        %{kversion}
Release:        %{rpmrel}
Summary:        Virtual rpm for latest %{kname}-laptop-devel
Group:          Development/Kernel
Requires:       %{kname}-laptop-devel-%{buildrel}

%description -n %{kname}-laptop-devel-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-laptop-devel installed...

%{updateinfo1}
%{updateinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# kernel-multimedia-laptop-smp-devel-latest: virtual rpm
#
%package -n %{kname}-laptop-smp-devel-latest
Version:        %{kversion}
Release:        %{rpmrel}
Summary:        Virtual rpm for latest %{kname}-laptop-smp-devel
Group:          Development/Kernel
Requires:       %{kname}-laptop-smp-devel-%{buildrel}

%description -n %{kname}-laptop-smp-devel-latest
This package is a virtual rpm that aims to make sure you always have the
latest %{kname}-laptop-smp-devel installed...

%{upinfo1}
%{upinfo2}

%{info1}
%{info2}
%{info3}
%{info4}
%{info5}

%{info10}
%{info11}



#
# End packages - here begins build stage
#
%prep
%setup -q -n %top_dir_name -c

%setup -q -n %top_dir_name -D -T -a100

%define patches_dir ../%{patch_ver}/

cd %src_dir
#%if %kpatch
#%patch1 -p1
#%elseif %kstable
#%patch1 -p1
#%endif

%{patches_dir}/scripts/apply_patches

# PATCH END
#
# Setup Begin
#

# Prepare all the variables for calling create_configs

%if %build_debug
%define debug --debug
%else
%define debug --no-debug
%endif

%{patches_dir}/scripts/create_configs %debug --user_arch="%{target_arch}"

# make sure the kernel has the sublevel we know it has...
LC_ALL=C perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile

# get rid of unwanted files
find . -name '*~' -o -name '*.orig' -o -name '*.append' |xargs rm -f



%build
# Common target directories
%define _kerneldir /usr/src/%{kname}-%{buildrel}
%define _bootdir /boot
%define _modulesdir /lib/modules

# Directories definition needed for building
%define temp_root %{build_dir}/temp-root
%define temp_source %{temp_root}%{_kerneldir}
%define temp_boot %{temp_root}%{_bootdir}
%define temp_modules %{temp_root}%{_modulesdir}



PrepareKernel() {
	name=$1
	extension=$2
	echo "Make dep for kernel $extension"
	%smake -s mrproper

	# We can't use only defconfig anymore because we have the autoconf patch,
	
	if [ $name = ""]; then
	    cp arch/%{target_arch}/defconfig-maximum .config
	else
	    cp arch/%{target_arch}/defconfig-$name .config
	fi
	
# make sure EXTRAVERSION says what we want it to say
%if %kstable
	LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = .%{kstable}-$extension/" Makefile
%else
	LC_ALL=C perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -$extension/" Makefile
%endif
	%smake oldconfig
}



BuildKernel() {
	KernelVer=$1
	echo "Building kernel $KernelVer"

	%kmake all

	## Start installing stuff
	install -d %{temp_boot}
	install -m 644 System.map %{temp_boot}/System.map-$KernelVer
	install -m 644 .config %{temp_boot}/config-$KernelVer

	%ifarch %{powerpc}
	    cp -f vmlinux %{temp_boot}/vmlinuz-$KernelVer
	%else
	    cp -f arch/%{target_arch}/boot/bzImage %{temp_boot}/vmlinuz-$KernelVer
	%endif

	# modules
	install -d %{temp_modules}/$KernelVer
	%smake INSTALL_MOD_PATH=%{temp_root} KERNELRELEASE=$KernelVer modules_install 
}



SaveDevel() {
	devel_flavour=$1
	devel_cpu=$2

	if [ "$devel_cpu" != "" ]; then
		DevelRoot=/usr/src/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu
	else
		DevelRoot=/usr/src/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}
	fi
	TempDevelRoot=%{temp_root}$DevelRoot
	mkdir -p $TempDevelRoot
	for i in $(find . -name Makefile -o -name Makefile-* -o -name Makefile.*); do cp -R --parents $i $TempDevelRoot;done
	for i in $(find . -name Kconfig -o -name Kconfig.* -o -name Kbuild -o -name Kbuild.*); do cp -R --parents $i $TempDevelRoot;done
	cp -fR include $TempDevelRoot
	cp -fR scripts $TempDevelRoot
	cp -fR arch/%{target_arch}/kernel/asm-offsets.{c,s} $TempDevelRoot/arch/%{target_arch}/kernel/
	# truecrypt needs this
	cp -fR drivers/md/dm.h $TempDevelRoot/drivers/md/
	%ifarch %{ix86}
	cp -fR arch/%{target_arch}/kernel/sigframe.h $TempDevelRoot/arch/%{target_arch}/kernel/
	%endif
	cp -fR .config .kernelrelease Module.symvers $TempDevelRoot
	cp -fR 3rdparty/mkbuild.pl $TempDevelRoot/3rdparty
	for i in alpha arm arm26 avr32 cris frv h8300 ia64 mips m32r m68knommu parisc sh sh64 sparc sparc64 s390 v850 xtensa; do
		rm -rf $TempDevelRoot/arch/$i
		rm -rf $TempDevelRoot/include/asm-$i
	done
	
	# ppc needs only m68k headers
	rm -rf $TempDevelRoot/arch/m68k
	
%ifnarch %{ix86} x86_64
	rm -rf $TempDevelRoot/arch/i386
	rm -rf $TempDevelRoot/arch/x86_64
	rm -rf $TempDevelRoot/include/asm-i386
	rm -rf $TempDevelRoot/include/asm-x86_64
%endif	
%ifnarch %{powerpc}
	rm -rf $TempDevelRoot/arch/powerpc
	rm -rf $TempDevelRoot/arch/ppc
	rm -rf $TempDevelRoot/include/asm-m68k
	rm -rf $TempDevelRoot/include/asm-powerpc
	rm -rf $TempDevelRoot/include/asm-ppc
%endif	
	# fix permissions
	chmod -R a+rX $TempDevelRoot
	# hack Makefile to prevent deleting files with mrproper
	patch -d $TempDevelRoot -i %{SOURCE10} 
	if [ "$devel_cpu" != "" ]; then
		output_devel=../kernel_devel_files.$devel_flavour$devel_cpu
	else
		output_devel=../kernel_devel_files.$devel_flavour
	fi
cat > $output_devel <<EOF
	%defattr(-,root,root,-)
	%dir $DevelRoot
	%dir $DevelRoot/arch
	%dir $DevelRoot/include
	$DevelRoot/.config
	$DevelRoot/.kernelrelease
	$DevelRoot/3rdparty
	$DevelRoot/Documentation
	$DevelRoot/Kbuild
	$DevelRoot/Makefile
	$DevelRoot/Module.symvers
%ifarch %{ix86} x86_64
	$DevelRoot/arch/i386
	$DevelRoot/arch/x86_64
%endif
%ifarch %{powerpc}
	$DevelRoot/arch/powerpc
	$DevelRoot/arch/ppc
%endif
	$DevelRoot/arch/um
	$DevelRoot/block
	$DevelRoot/crypto
	$DevelRoot/drivers
	$DevelRoot/fs
	$DevelRoot/include/acpi
	$DevelRoot/include/asm
	$DevelRoot/include/asm-generic
%ifarch %{ix86} x86_64
	$DevelRoot/include/asm-i386
	$DevelRoot/include/asm-x86_64
%endif
%ifarch %{powerpc}
	$DevelRoot/include/asm-m68k
	$DevelRoot/include/asm-powerpc
	$DevelRoot/include/asm-ppc
%endif
	$DevelRoot/include/asm-um
	$DevelRoot/include/config
	$DevelRoot/include/keys
	$DevelRoot/include/linux
	$DevelRoot/include/math-emu
	$DevelRoot/include/media
	$DevelRoot/include/mtd
	$DevelRoot/include/net
	$DevelRoot/include/pcmcia
	$DevelRoot/include/rdma
	$DevelRoot/include/rxrpc
	$DevelRoot/include/scsi
	$DevelRoot/include/sound
	$DevelRoot/include/video
	$DevelRoot/init
	$DevelRoot/ipc
	$DevelRoot/kernel
	$DevelRoot/lib
	$DevelRoot/mm
	$DevelRoot/net
	$DevelRoot/scripts
	$DevelRoot/security
	$DevelRoot/sound
	$DevelRoot/usr
	%doc README.kernel-%{ktag}-sources
	%doc README.Mandriva_Linux_%{ktag}
	%doc README.urpmi
EOF
	### Create -devel Post script on the fly
cat > $output_devel-post <<EOF
	if [ -d /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu ]; then
	    ln -sf $DevelRoot /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/build
	    ln -sf $DevelRoot /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/source
	fi
EOF

	### Create -devel Preun script on the fly
cat > $output_devel-preun <<EOF
	if [ -L /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/build ]; then
	    rm -f /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/build
	fi
	if [ -L /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/source ]; then
	    rm -f /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/source
	fi
	exit 0
EOF

}



CreateFiles() {
	kernel_flavour=$1
	kernel_cpu=$2
	
	if [ "$kernel_cpu" != "" ]; then
		output_kernel=../kernel_files.$kernel_flavour$kernel_cpu
	else
		output_kernel=../kernel_files.$kernel_flavour
	fi
cat > $output_kernel <<EOF		
	%defattr(-,root,root)
	%{_bootdir}/config-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
	%{_bootdir}/vmlinuz-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
	%{_bootdir}/System.map-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
	%dir %{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/
	%{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/kernel
	%{_modulesdir}/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/modules.*
	%doc README.kernel-%{ktag}-sources
	%doc README.Mandriva_Linux_%{ktag}
	%doc README.urpmi
EOF

### Create kernel Post script on the fly
cat > $output_kernel-post <<EOF
	/sbin/installkernel -L %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
	pushd /boot >/dev/null
	if [ -L /boot/vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu ]; then
	    rm -f /boot/vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu
	fi
	ln -sf vmlinuz-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu
	if [ -L /boot/initrd-%{ktag}-$kernel_flavour$kernel_cpu.img ]; then
	    rm -f /boot/initrd-%{ktag}-$kernel_flavour$kernel_cpu.img
	fi
	ln -sf initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu.img initrd-%{ktag}-$kernel_flavour$kernel_cpu.img
	popd >/dev/null
%if %build_devel
	if [ -d /usr/src/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu ]; then
	    ln -sf /usr/src/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/build
	    ln -sf /usr/src/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu /lib/modules/%{kversion}-%{ktag}-$devel_flavour-%{buildrpmrel}$devel_cpu/source
	fi
%else
# modules stuff
if [ -x /sys/devices/platform/i8042 ]; then
        grep -q -s "psmouse" /etc/modprobe.preload{,.d/*} || \
        /bin/echo -e "\npsmouse" >> /etc/modprobe.preload.d/kernel-multimedia
fi

%ifarch %{ix86} x86_64
grep -q -s "pcspkr" /etc/modprobe.preload{,.d/*} || \
        /bin/echo -e "\npcspkr" >> /etc/modprobe.preload.d/kernel-multimedia
%endif

grep -s "^realtime"  /etc/modprobe.preload{,.d/*} &> /dev/null

if [ \$? -ne 0 ] ; then
        grep -s "^capability"  /etc/modprobe.preload{,.d/*} &> /dev/null
        if [ \$? -ne 0 ] ; then

           /bin/echo -e "\nPreloading capability security module,"
           /bin/echo -e "if you want to activate realtime capabilities"
           /bin/echo -e "comment out/delete the line containing capability"
           /bin/echo -e "and add on a new line \"realtime\", and adjust"
           /bin/echo -e "the realtime module options in /etc/modprobe.conf."

           /bin/echo -e "\ncapability" >> /etc/modprobe.preload.d/kernel-multimedia
        fi
fi

%endif
EOF

### Create kernel Preun script on the fly
cat > $output_kernel-preun <<EOF
	pushd /boot >/dev/null
	if [ -L /boot/vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu ]; then
            if [ \$(readlink vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu) = "vmlinuz-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu" ]; then
		rm -f /boot/vmlinuz-%{ktag}-$kernel_flavour$kernel_cpu
	    fi
	fi
	if [ -L /boot/initrd-%{ktag}-$kernel_flavour$kernel_cpu.img ]; then
	    if [ \$(readlink initrd-%{ktag}-$kernel_flavour$kernel_cpu.img) = "initrd-%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu.img" ]; then
		rm -f /boot/initrd-%{ktag}-$kernel_flavour$kernel_cpu.img
	    fi
	fi
	/sbin/installkernel -R %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
	popd >/dev/null
%if %build_devel
	if [ -L /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/build ]; then
	    rm -f /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/build
	fi
	if [ -L /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/source ]; then
	    rm -f /lib/modules/%{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu/source
	fi
%endif
	exit 0
EOF

### Create kernel Postun script on the fly
cat > $output_kernel-postun <<EOF
	/sbin/kernel_remove_initrd %{kversion}-%{ktag}-$kernel_flavour-%{buildrpmrel}$kernel_cpu
EOF
}



CreateKernel() {
	flavour=$1
	processor=$2

	PrepareKernel $flavour$processor %{ktag}-$flavour-%{buildrpmrel}$processor

	BuildKernel %{kversion}-%{ktag}-$flavour-%{buildrpmrel}$processor
	%if %build_devel
	    SaveDevel $flavour $processor
	%endif
	CreateFiles $flavour $processor

}

###
# DO it...
###

# Create a simulacro of buildroot
rm -rf %{temp_root}
install -d %{temp_root}

#make sure we are in the directory
cd %src_dir

%if %build_desktop_smp
CreateKernel desktop smp
%endif

%if %build_desktop_up
CreateKernel desktop ""
%endif

%if %build_laptop_smp
CreateKernel laptop smp
%endif

%if %build_laptop_up
CreateKernel laptop ""
%endif

# We don't make to repeat the depend code at the install phase
%if %build_source
    PrepareKernel "" %{buildrpmrel}%{ktag}custom
%smake -s prepare
%smake -s scripts
%endif

###
### install
###
%install
install -m 644 %{SOURCE4}  .
install -m 644 %{SOURCE5}  .
install -m 644 %{SOURCE6}  .
install -m 644 %{SOURCE7}  README.urpmi
install -m 755 %{SOURCE20} .

cd %src_dir
# Directories definition needed for installing
%define target_source %{buildroot}%{_kerneldir}
%define target_source_stripped %{buildroot}%{_kdir_stripped}
%define target_boot %{buildroot}%{_bootdir}
%define target_modules %{buildroot}%{_modulesdir}

# We want to be able to test several times the install part
rm -rf %{buildroot}
cp -a %{temp_root} %{buildroot}

# Create directories infastructure
%if %build_source
install -d %{target_source} 

tar cf - . | tar xf - -C %{target_source}
chmod -R a+rX %{target_source}

# we remove all the source files that we don't ship

# first architecture files
for i in alpha arm arm26 cris frv h8300 ia64 mips m32r m68knommu parisc sh sh64 sparc sparc64 s390 v850 xtensa; do
	rm -rf %{target_source}/arch/$i
	rm -rf %{target_source}/include/asm-$i
done

	# ppc only needs m68k headers
	rm -rf %{target_source}/arch/m68k

%ifnarch %{ix86} x86_64
	rm -rf %{target_source}/arch/i386
	rm -rf %{target_source}/arch/x86_64
	rm -rf %{target_source}/include/asm-i386
	rm -rf %{target_source}/include/asm-x86_64
%endif
%ifnarch %{powerpc}
	rm -rf %{target_source}/arch/powerpc
	rm -rf %{target_source}/arch/ppc
	rm -rf %{target_source}/include/asm-m68k
	rm -rf %{target_source}/include/asm-powerpc
	rm -rf %{target_source}/include/asm-ppc
%endif

# other misc files
rm -f %{target_source}/{.config.old,.config.cmd,.tmp_gas_check}

#endif %build_source
%endif

# gzipping modules
find %{target_modules} -name "*.ko" | xargs gzip -9

# We used to have a copy of PrepareKernel here
# Now, we make sure that the thing in the linux dir is what we want it to be

for i in %{target_modules}/*; do
  rm -f $i/build $i/source $i/modules.*
done

# sniff, if we gzipped all the modules, we change the stamp :(
# we really need the depmod -ae here

pushd %{target_modules}
for i in *; do
	/sbin/depmod -u -ae -b %{buildroot} -r -F %{target_boot}/System.map-$i $i
	echo $?
done

#Create the modules.description file
#provide the module versions that we ship in this kernel
for i in *; do
	pushd $i
	echo "Creating module.description for $i"
	modules=`find . -name "*.ko.gz"`
	echo $modules | xargs /sbin/modinfo \
	| perl -lne 'print "$name\t$1" if $name && /^description:\s*(.*)/; $name = $1 if m!^filename:\s*(.*)\.k?o!; $name =~ s!.*/!!' > modules.description
	popd
done
popd

###
### clean
###

%clean
rm -rf %{buildroot}
# We don't want to remove this, the whole reason of its existence is to be 
# able to do several rpm --short-circuit -bi for testing install 
# phase without repeating compilation phase
#rm -rf %{temp_root} 

###
### scripts
###



### desktop scripts
%post -n %{kname}-desktop-%{buildrel} -f kernel_files.desktop-post

%preun -n %{kname}-desktop-%{buildrel} -f kernel_files.desktop-preun

%postun -n %{kname}-desktop-%{buildrel} -f kernel_files.desktop-postun



### desktop-smp scripts
%post -n %{kname}-desktop-smp-%{buildrel} -f kernel_files.desktopsmp-post

%preun -n %{kname}-desktop-smp-%{buildrel} -f kernel_files.desktopsmp-preun

%postun -n %{kname}-desktop-smp-%{buildrel} -f kernel_files.desktopsmp-postun



### laptop scripts
%post -n %{kname}-laptop-%{buildrel} -f kernel_files.laptop-post

%preun -n %{kname}-laptop-%{buildrel} -f kernel_files.laptop-preun

%postun -n %{kname}-laptop-%{buildrel} -f kernel_files.laptop-postun



### laptop-smp scripts
%post -n %{kname}-laptop-smp-%{buildrel} -f kernel_files.laptopsmp-post

%preun -n %{kname}-laptop-smp-%{buildrel} -f kernel_files.laptopsmp-preun

%postun -n %{kname}-laptop-smp-%{buildrel} -f kernel_files.laptopsmp-postun



### kernel-desktop-devel
%post -n %{kname}-desktop-devel-%{buildrel} -f kernel_devel_files.desktop-post

%preun -n %{kname}-desktop-devel-%{buildrel} -f kernel_devel_files.desktop-preun



### kernel-desktop-smp-devel
%post -n %{kname}-desktop-smp-devel-%{buildrel} -f kernel_devel_files.desktopsmp-post

%preun -n %{kname}-desktop-smp-devel-%{buildrel} -f kernel_devel_files.desktopsmp-preun



### kernel-laptop-devel
%post -n %{kname}-laptop-devel-%{buildrel} -f kernel_devel_files.laptop-post

%preun -n %{kname}-laptop-devel-%{buildrel} -f kernel_devel_files.laptop-preun



### kernel-laptop-smp-devel
%post -n %{kname}-laptop-smp-devel-%{buildrel} -f kernel_devel_files.laptopsmp-post

%preun -n %{kname}-laptop-smp-devel-%{buildrel} -f kernel_devel_files.laptopsmp-preun

###
### file lists
###

%if %build_desktop_up
%files -n %{kname}-desktop-%{buildrel} -f kernel_files.desktop
%endif

%if %build_desktop_smp
%files -n %{kname}-desktop-smp-%{buildrel} -f kernel_files.desktopsmp
%endif

%if %build_laptop_up
%files -n %{kname}-laptop-%{buildrel} -f kernel_files.laptop
%endif

%if %build_laptop_smp
%files -n %{kname}-laptop-smp-%{buildrel} -f kernel_files.laptopsmp
%endif

%if %build_devel
%if %build_desktop_up
%files -n %{kname}-desktop-devel-%{buildrel} -f kernel_devel_files.desktop
%endif

%if %build_desktop_smp
%files -n %{kname}-desktop-smp-devel-%{buildrel} -f kernel_devel_files.desktopsmp
%endif

%if %build_laptop_up
%files -n %{kname}-laptop-devel-%{buildrel} -f kernel_devel_files.laptop
%endif

%if %build_laptop_smp
%files -n %{kname}-laptop-smp-devel-%{buildrel} -f kernel_devel_files.laptopsmp
%endif
%endif

%if %build_source
%files -n %{kname}-source-%{buildrel}
%defattr(-,root,root)
%dir %{_kerneldir}
%dir %{_kerneldir}/arch
%dir %{_kerneldir}/include
%{_kerneldir}/.config
%{_kerneldir}/.gitignore
%{_kerneldir}/.kconfig.d
%{_kerneldir}/.kernelrelease
%{_kerneldir}/3rdparty
%{_kerneldir}/COPYING
%{_kerneldir}/CREDITS
%{_kerneldir}/Documentation
%{_kerneldir}/Kbuild
%{_kerneldir}/MAINTAINERS
%{_kerneldir}/Makefile
%{_kerneldir}/README
%{_kerneldir}/REPORTING-BUGS
%ifarch %{ix86} x86_64
%{_kerneldir}/arch/i386
%{_kerneldir}/arch/x86_64
%endif
%{_kerneldir}/arch/um
%ifarch %{powerpc}
%{_kerneldir}/arch/powerpc
%{_kerneldir}/arch/ppc
%endif
%{_kerneldir}/block
%{_kerneldir}/crypto
%{_kerneldir}/drivers
%{_kerneldir}/fs
%{_kerneldir}/include/acpi
%{_kerneldir}/include/asm
%{_kerneldir}/include/asm-generic
%ifarch %{ix86} x86_64
%{_kerneldir}/include/asm-i386
%{_kerneldir}/include/asm-x86_64
%endif
%{_kerneldir}/include/asm-um
%ifarch %{powerpc}
%{_kerneldir}/include/asm-m68k
%{_kerneldir}/include/asm-powerpc
%{_kerneldir}/include/asm-ppc
%endif
%{_kerneldir}/include/config
%{_kerneldir}/include/keys
%{_kerneldir}/include/linux
%{_kerneldir}/include/math-emu
%{_kerneldir}/include/media
%{_kerneldir}/include/mtd
%{_kerneldir}/include/net
%{_kerneldir}/include/pcmcia
%{_kerneldir}/include/rdma
%{_kerneldir}/include/rxrpc
%{_kerneldir}/include/scsi
%{_kerneldir}/include/sound
%{_kerneldir}/include/video
%{_kerneldir}/init
%{_kerneldir}/ipc
%{_kerneldir}/kernel
%{_kerneldir}/lib
%{_kerneldir}/mm
%{_kerneldir}/net
%{_kerneldir}/scripts
%{_kerneldir}/security
%{_kerneldir}/sound
%{_kerneldir}/usr
%doc README.kernel-%{ktag}-sources
%doc README.Mandriva_Linux_%{ktag}
%doc README.urpmi
%doc Changelog.kernel
#endif %build_source
%endif

%if %build_doc
%files -n %{kname}-doc-%{buildrel}
%defattr(-,root,root)
%doc linux-%{kversion}/Documentation/*
%endif

%if %build_desktop_up
%files -n %{kname}-desktop-latest
%defattr(-,root,root)
%endif

%if %build_desktop_smp
%files -n %{kname}-desktop-smp-latest
%defattr(-,root,root)
%endif

%if %build_laptop_up
%files -n %{kname}-laptop-latest
%defattr(-,root,root)
%endif

%if %build_laptop_smp
%files -n %{kname}-laptop-smp-latest
%defattr(-,root,root)
%endif

%if %build_devel
%if %build_desktop_up
%files -n %{kname}-desktop-devel-latest
%defattr(-,root,root)
%endif

%if %build_desktop_smp
%files -n %{kname}-desktop-smp-devel-latest
%defattr(-,root,root)
%endif

%if %build_laptop_up
%files -n %{kname}-laptop-devel-latest
%defattr(-,root,root)
%endif

%if %build_laptop_smp
%files -n %{kname}-laptop-smp-devel-latest
%defattr(-,root,root)
%endif
%endif

%if %build_source
%files -n %{kname}-source-latest
%defattr(-,root,root)
%endif


#TODO
#- include IPP2P? 
#- add DU01_usb-rndis-lite from tmb (#30128)
#- libata update, add pata support for sata_via



%changelog
* Sat Aug 11 2007 Danny Tholen <dtholen@mandriva.org> 2.6.17.14-9mdv2008.0
+ Revision: 61963
- DU72_usb-storage-add-super_top-to-unusual_dev (#30803)
- BK14_alsa-atiixp-ac97_codec (#30651)
- truly fix reiser4fs oops (FS22, #30795)
- ME73_shfs-truncate_inode_pages (ME73, #21167)
- update sheepnet to 2.3pre (MJ80) and drop obsolete MJ81, MJ82
- update uvc (MC85) to revision 120 (20070804)
- post script cleanup and fixes (including #31160)
- disable IRQ_BALANCE
- modinfo-25 invocation in find-provides changed to modinfo
- update mkinitrd req and remove suspend2 hack
- add NW8XX driver (MK60)
- Sync with Giuseppe Ghibo's stock kernel prelease:
    DB61_3ware9650se_support (#29471), DB62_3ware9650se_9411,
    BK15_hda_azx (#29398), DN95_ide_nv_mcp65, DU30_asix_88178 (#31572),
    DA90_te_cf100, DA91_pcmcia_multifunction (#28175),
    CA86_watchdog_nmi_30s (RH#237655), ZZ31_mm-udf,
    ZZ27_ZZ30_CVE-2006-7203_skip_data_compatsys,
    ZZ27_ZZ31_CVE-2007-1353_hci_bluetooth,
    ZZ27_ZZ32_CVE-2007-1861_ipv4_fib_netlink_oops,
    ZZ27_ZZ33_CVE-2007-2172_ipv4_fib_semantics,
    ZZ27_ZZ34_CVE-2007-2242_ipv6_disallow_rh0,
    ZZ27_ZZ35_CVE-2007-2525_ppoe_memleak,
    DN32_ifpacket_missing_headers (RH#238749),
    FS40_ext3_unlink_racing (RH#239787),
    ZZ27_ZZ39_CVE-2007-2453_seeding_devrandom, DV30_i965gm_ids,
    ZZ40_nfs_missing_braces, DU31_teac_hd15puk (#30803),
    DB64_smb700_combined_mode (31445),
    DI38_atiixp_sb700_has_one_channel (#31448), DB65_ahci_ati_sb700 (#31449),
    FS60_xfs_umount_fix (RH#209062), ZZ42_serial_460800,
    ZZ27_ZZ43_CVE-2007-1497_fragments-bypass-nf_conntrack-netfilter (#29723),
    ZZ27_ZZ45_dont_leak_NT_bit, ZZ27_ZZ46_dont_leak_NT_bit_newline,
    ZZ27_ZZ47_CVE-2007-1496_netfilter_null_pointer_dereferences (#29722),
    ZZ27_ZZ48_netfilter_null_pointer_dereferences_multiple,
    ZZ27_ZZ49_netfilter_crash_on_bridged_packet,
    ZZ22_appletalk_endianess_annotations,
    ZZ27_ZZ50_CVE-2007-1357_appletalk_length_mismatch,
    DU32_sony_ericcson_p990i, DU33_nokia_n80, MD77_i2c_nforce2,
    ZZ44_oldide_fixsata_detection, BK16_alsa-intel-id-otherquirks,
    ZZ27_ZZ53_CVE-2006-6054_ext2-readdir-fpos,
    MC83_ipw2200_pci_shutdown_handler, DN10_forcedeth_mcp61,
    DN11_forcedeth_059_update, DA86_areca_arcmsr_1, DA87_areca_arcmsr_2,
    DA88_areca_arcmsr_3, DA20_default_poweroff_up_machines (#26228, #25161),
    ZZ35_v4l_dma32, DV31_i965_agp_suspend, ZZ47_nameif_track_rename,
    DN20_tulip_quad_nic_down, DN58_r8169_more_alignment_8168,
    MJ25_qla3xxx_2.02 (RH#208182), DB22_qla1280_fix_bus_reset_typo,
    DB23_qla1280_fix_command_timeout,
    DN09_e1000_not_truncate_dso_with_82544_workaround,
    CA90_x86_dont_check_microcode_size, DN43_libertas,
    DI39_atiixp_fix_cable_detection (DEB#411024), MC80_ipw2200_update_1.2.0,
    DB29_aic94xx_1.0.3, DU34_asix_20060614, ZZ48_make_swiotlb_use_bus_to_virt,
    CA95_debug_apic_up_quiet, DA70_acpi_thinkpad_r40e_1set70w,
    FS61_xfs_unlink_recovery_fix, FS62_xfs_26040a_dont_dirty_inode,
    FS63_xfs_28000a_buffer_unwritten, ZZ41_it8716_it8718f_v4 (#30900),
    CA15_820_area_page_aligned (RH#210499),
    DN46_netfilter_fix_conntrack_overpassed_heavy_load,
    CA20_kprobe_fix_deadlock, CA11_lockdep_fix_ide_proc_interaction(RH#210678),
    DN31_net_compute_checksum_in_netpoll_send_udp (RH#214542),
    CA12_memory_gdb_fix_backtrace_output (RH#222826),
    ZZ49_net_gact_division_by_zero (RH#218348),
    DN29_network_rpc_krb5_memleak (RH#223348),
    CA18_memory_less_node (RH#228564),
    ZZ27_ZZ86_CVE-2007-2875_cpuset_underflow (#31374),
    ZZ27_ZZ87_CVE-2007-2876_netfilter_remote_triggerable_panic (#31376),
    CA83_enable_nmi_watchdog_amd_0x10 (RH#222123),
    CA84_increase_nmi_watchdog_probing_timeout,
    CA91_force_data_segment_4k_aligned_i386,
    CA92_force_data_segment_4k_aligned_x86_64,
    ZZ36_sbp2_dont_prefer_modesense_10, ZZ37_sbp2_fix_probing_some_dvd,
    DA95_sd_fix_unknown_capacity, DN48_ieee82011_1217,
    CA96_make_gart_pe_uncacheable_x86_64,
    CA97_shorten_x86_64_boot_setup_gdt (RH#214736),
    DN98_bonding_fix_deadlock_high_load, ZZ33_mm_swap_write_failure,
    CA98_mm_fix_bugon_for_shmem_truncate_range,
    DA08_acpi_change_memhotplug_loglevel,
    CA93_module_unaligned_access_fix (RH#198572, RH#210013, UB#43913),
    DU03_psmouse_suspend_cleanups, FS41_ext3_fix_buffer_memorder,
    CA50_proc_mtrr_size_and_mask, CA51_stack_overflow_non4k_pagesize,
    CA52_elevator_move_clearing_unplug_flag, ZZ34_md_fix_rebuild_spares,
    DN41_nat_t_udp_encap (SU#196747),
    DN80_bnx2_add_rx_drop_counter (#32073, #31723),
    DN92_skb_trim_audit (#32073, #31723),
    ZZ27_ZZC0_CVE-2007-2878_fix_vfat_compat_ioctls,
    FS42_ext3_dont_do_orphan_processing,
    CA67_mm_hugetlb_fix_absurd_HugePages_Rsvd,

* Sun May 27 2007 Danny Tholen <dtholen@mandriva.org> 2.6.17.14-8mdv2008.0
+ Revision: 31784
- use normal depmod/modinfo instead of -25 version
- reiser4-radix-tree-direct-data-fix (FS21, #30795)
- update gspcav1 to 20070508 (MK50)
- make gspcav1 actually build (MK51,52, #29459)
- update suspend2 to 2.2.8.5 (ZZ75)
- prevent scripts removal by mrproper in devel package
- update ipw3945 to 1.2.1 (MC75)
- add a device id for zd1211rw (DN60, #30020)
- update bcm43xx (DN40, DN65)
- kernel now requires devel-rpms
- make psmouse insertion in modprobe.preload unconditional (#30795)
- bluetooth update (DU50, #30690)

* Sun May 13 2007 Danny Tholen <dtholen@mandriva.org> 2.6.17.14-7mdv2008.0
+ Revision: 26532
- ide-generic should be module (thx for report JPB)
- Potential fix for bluetooth crash (#30690)
- usb blacklisting (#26728)
- Fix cardbus detection on yenta sockets
- dkms can no longer delete devel files with make mrproper
- spec tweaks, including fix for rpm descriptions
- From main:
  	* CA89_pci_remove_invalid_message.patch
  	* CA89_usb_check_return_values.patch
- cleanup spec (remove echos)
- add dm.h for truecrypt
- make devel trees read-only (if a dkms module fails because of this, it is broken)
- do not autoload eth1394 (bug #20126)
- enable CONFIG_AUDIT* to fix pam perm errors
- fix initialization of e1000 on thinkpad when no cable plugged (DN08)
- add some sata_via ids (DB60)


* Sun Apr 01 2007 Thomas Backlund <tmb@mandriva.org> 2.6.17.14-6mdv2007.1
+ Revision: 150130
- change IEEE80211 & IEEE80211_SOFTMAC to modular
- fix 3rdparty/adm8211/Kconfig as it broke IEEE80211_CRYPT_CCMP &
  IEEE80211_CRYPT_TKIP build (problem reported by Massimiliano Liccardo),
  this one also fixes #24699
- security sync with main:
    ZZ23_CVE-2007-1592_ipv6_fl_socklist_inadvertently_shared_fix.patch

* Wed Mar 21 2007 Thomas Backlund <tmb@mandriva.org> 2.6.17.14-5mdv2007.1
+ Revision: 147311
- from Danny:
  - add patch DA07: fixes acpi oops on some broken dstds
  - add patch MC57: rt61 64bit  fixes
  - update patch PP42: blacklist apple bluetooth
  - Merge with main:
    DU25_samsung_usb_floppy_unusual_dev.patch
    DU26_macbook_keyboard_support.patch
    ZZ19_CVE-2007-0005_cm4040_cs_buffer_overflow_fix.patch
    ZZ20_CVE-2007-1217_capi_debug_buffer_overflow_fix.patch
    ZZ21_CVE-2007-1388_ipv6_sockglue_null_ptr_fix.patch
    ZZ22_CVE-2007-1000_ipv6_getsockopt_sticky.patch
  - drop patch PP51: replaced by patch DU25

* Sun Mar 11 2007 Thomas Backlund <tmb@mandriva.org> 2.6.17.14-4mdv2007.1
+ Revision: 141354
- disable RT61 on x86_64 for now as it broke the build
- from Danny Tholen <obiwan@mailmij.org>
  - remove some unused files
  - update DU50 with upstream bluetooth fixes (2.6.17-mh5)
  - update spca5xx to MK50_gspcav1-20070110.tar
  - fix Makefile of acer_acpi to make it build
  - drop DA16_wacom_acpi_enable_future_usage.patch, we don't need it anymore
  - mv MC50 to MC45_qc-usb-0.6.4.tar
  - mv MC54 to MC46_qc-usb-2.6.11-endian.patch
  - mv CA72 to CA10_fix-ide-locking-error.patch
  - drop nozomi (replaced with in-tree driver)
  - drop BK11_alsa_hda-intel_realtek_subdevid.patch (already in alsa)
  - Merge with main:
        DI31_ata_piix_ich8_mapdb_fix.patch, CA61_swsusp_debugging1.patch
        CA62_s3_ide_nmi.patch, CA63_s3_routine_resume.patch
        CA64_swsusp_pnp_bios.patch, CA65_do_suspend_lowlevel_segment.patch
        CA66_flush_tlb_all_suspend.patch, CA67_suspend_clock_skew.patch
        CA68_cpu_hotplug_mutex.patch, CA69_cpu_init_avoid_gfpkernel.patch
        CA70_fix_broken_vm86.patch, DA78_serial_suspend_vs_pnp.patch
        HB02_core2_rdtsc.patch, MC51_rt73-cvs-20070124.tar
        MC52_rt61-cvs-20070124.tar, MC53_rt73_mdv_paths.patch
        MC54_rt73_use_firmware_hotplug.patch, MC55_rt61_mdv_paths.patch
        MC56_rt61_firmware.patch, CA71_irq_quirk_ich9.patch
        CA72_i2ci801_ich9_ids.patch, CA73_i2ci801_ich9.patch
        DA79_hda_ich9.patch, DI32_ata_piix_ich9.patch
        DI33_ahci_ich9.patch, FS14_exit3_avoid_sector_t_overflow.patch
        CA74_mm_msync_lsb_fix.patch, DU20_uhci_introduces_rapid_enum_opt.patch
        DU21_unusual_dev_sony_floppy.patch, DB50_sata_sis_update.patch
        DB51_sis190_sis968-2.patch, DB52_sis190_eeprom_mac.patch
        enable CONFIG_IKCONFIG on x86_64, MC65_gregkh-driver-nozomi.patch
        DU22_rndis_host_nokia_mobile_crash_fix.patch, DI34_atiixp_sb600_has_one_channel.patch
        CA78_zeromap_may_find_a_pte.patch, CA79_ppc64_make_current_preempt_safe.patch
        MC85_uvc-r88.tar, DI55_jmicron_cable_detect.patch
        CA75_sysrq_blocked_task.patch, CA76_sysrq-showblockedtasks-is-sysrq-w.patch
        DN30_ct_sync.patch, DI25_add_marvell_ide.patch, DI26_add_jmicron_ide.patch
        DI27_fix_jmicron_ide.patch, DI28_add_jmicron_ahci_did.patch
        DI29_ahci_ignore_if_err_jmb.patch
        CA85_warn_on_once.patch, CE12_suspend_speedup.patch
        CA81_core2_nmi_watchdog.patch
        DU23_let_option_driver_handle_anydata_cdma_modems.patch
        DN93_r8169_suspend.patch, DV29_mach64_fix_bogus_delay_loop.patch
        DI60_ide_acpi_1.patch, DI61_ide_acpi_2.patch
        CE13_restore_eoi_status_resume.patch
        CE14_ondemand_suspend1.patch, CE15_ondemand_suspend2.patch

* Wed Mar 07 2007 Thomas Backlund <tmb@mandriva.org> 2.6.17.14-3mdv2007.1
+ Revision: 134169
- security updates from main 2.6.17.12:
    ZZ14_CVE-2007-0958_unreadable_binaries_pt_interp_fix.patch
    ZZ16_CVE-2006-6056_hfs_null_pointer_fix.patch
- rename *-headers to the more appropriate *-devel
- remove the kernel-*devel requires kernel-*
- install devel files in /usr/src/'uname -r'
- install full source in /usr/src/<version>-mm-<release>
- create post/postun/preun scripts at build time (removes code duplication)
- update README.urpmi
- create post/postun/preun scripts at buildtime to minimize code duplication
- drop kernel-source requires: libqt-devel, gtk2-devel, libglade2.0-devel,
  to minimize install requirements
- update patch MD40: ndiswrapper to 1.37
- From Danny Tholen <obiwan@mailmij.org>:
    add patch ZZ97: try to fix usb locking related system hang at boot (#24683)
- fix RC versioning
- add "static" symlinks to /boot
- fix the whole autoconf mess
    dont rely on /etc/init.d/kheader and /boot/kernel.h anymore
    drop all of the old autoconf hacks
    drop kernel-multimedia-source-stripped(-latest) rpms
    introduce kernel-multimedia-$flavour-headers(-latest) rpms to build 3rdparty
    drivers against (survives test: make mrproper oldconfig prepare scripts)
    kernel-multimedia-source rpm does not include any autoconf stuff anymore
    add info regarding this to README.urpmi

* Sat Feb 24 2007 Thomas Backlund <tmb@mandriva.org> 2.6.17.14-2mdv2007.1
+ Revision: 125305
- import 2.6.17.14-2mdv from 2007.0 Contrib/Updates
- update patch MD70: squashfs-3.2-r2
- drop patch FS06_max-symlink-to-10.patch, as it creates security
  issues on x86_64 (#27955)
- add support for "flush" on fat filesystems (from main):
    FS12_fat_add_flush.patch (#28574)
- security updates from main 2.6.17.11mdv:
    ZZ03_CVE-2006-5173_eflags_reset.patch
    ZZ04_CVE-2006-5619_ip6_flowlabel_seqfile_fix.patch
    ZZ05_CVE-2006-5751_bridge_overflow_fix.patch
    ZZ06_CVE-2006-6106_bluetooth_add_capi_packet_checks.patch
    ZZ07_CVE-2006-5757_fs_grow_buffers_infinite_loop_fix.patch
    ZZ08_CVE-2006-5749_isdn_ppp_init_reset_state_timer.patch
    ZZ09_CVE-2006-5753_fix_bad_inode_retun_values.patch
    ZZ10_CVE-2006-6053_ext3_handle_dir_corruption.patch
    ZZ11_CVE-2006-4814_mincore_fix_user_access_locking.patch
    ZZ12_CVE-2007-0006_key_serial_number_collision_fix.patch
    ZZ13_CVE-2006-5823_cramfs_zlib_inflate.patch
- security update from tmb 2.6.17.14-4mdv
    ZZ14_CVE-2007-0772_Fix_a_free-wrong-pointer_bug_in_nfsacl_server.patch
- import the 2.6.14-1mdv only released to http://tmb.kkc.fi/Kernels/2007.0/
     update to 2.6.17.14
     drop DV13, DB40 (merged)
     DU51_usb-suspend-check-driver.patch (another try at fixing #25956)
     DI37_libata-resource-conflict-for-legacy-mode.patch (upstream, #23279)
     x86_64 config changes (enable modversions, AGP as module on laptop)
     add DN45_bcm43xx_hotfix.patch (upstream)
     add DN36_ieee80211-1.2.15.patch (upstream)
     update ndiswrapper to 1.28
     DA10_acpi_resume.patch (upstream)
     disable REGPARM (suspend problems?)
     Support for jmicron in legacy mode (DI54) (upstream, #25155)
     add MJ11_avmaster-have_v4l2.patch (me)
     update alsa to 1.0.13 except snd-aoa stuff (upstream)
     MH95_acer_acpi.tar (upstream)
     drop BK02 (merged)
     drop BK15_ppc-irq_of_parse_and_map-not-on-2.6.17.patch for now (broken)
     from tmb:
          update ZZ30_v4l_dvb_2.6.18.1.patch
     from main:
          DA75_pcmcia_deadlock.patch
          DN89_r8169_pcmcia_hot_unplug.patch
          BK13_alsa_hda-intel-oops.patch
          DA76_cardbus_hotplug_api_safe.patch
          DA77_pccard_store_cis_fix_error_handling.patch
          ZZ25_CVE-2005-4997_clip_do_not_refer_freed_skbuff.patch
          ZZ26_CVE-2006-4572_netfilter_ipv6_fragmention_attacks_fixes.patch
          CA60_x86_64_adds_nx_mask_bit_for_pte_entry.patch
          DN90_netfilter_missing_check_for_cap_net_admin.patch
          DV20_mach64_drm.patch
          DV21_mach64_drm_fixes.patch
          DV22_mach64_drm_driver_init_members.patch
- import src.rpm from 2007.0/contrib/release
- Created package structure for kernel-multimedia.